OSDN Git Service

Added improved "ADD" table + slightly improved mhash384_final() function + updated...
[mhash384/mhash384.git] / Makefile
1 # -----------------------------------------------
2 # OPTIONS
3 # -----------------------------------------------
4
5 DEBUG ?= 0
6
7 # -----------------------------------------------
8 # SYSTEM DETECTION
9 # -----------------------------------------------
10
11 ISODATE := $(shell date +%Y-%m-%d)
12 OS_ARCH := $(shell $(CXX) -v 2>&1 | grep -Po 'Target:\s*\K\w+')
13 OS_TYPE := $(shell uname -s | tr '[:upper:]' '[:lower:]')
14
15 # -----------------------------------------------
16 # DIRECTORIES
17 # -----------------------------------------------
18
19 SUBDIRS = libmhash384 frontend
20 CLEANUP = $(addsuffix .cleanup,$(SUBDIRS))
21
22 # -----------------------------------------------
23 # FILE NAMES
24 # -----------------------------------------------
25
26 OUTDIR = out
27 BINDIR = frontend/bin
28
29 ifeq ($(DEBUG),0)
30   APPNAME = mhash384
31 else
32   APPNAME = mhash384g
33 endif
34
35 ifeq ($(words $(filter mingw% cygwin%,$(OS_TYPE))),0)
36   SUFFIX = run
37 else
38   SUFFIX = exe
39 endif
40
41 EXEFILE = $(APPNAME).$(SUFFIX)
42 TARFILE = $(OUTDIR)/$(APPNAME).$(ISODATE).$(firstword $(subst _, ,$(OS_TYPE)))-$(OS_ARCH).tgz
43
44 # -----------------------------------------------
45 # MAKE RULES
46 # -----------------------------------------------
47
48 .PHONY: all clean $(SUBDIRS) $(CLEANUP)
49
50 all: $(TARFILE)
51
52 clean: $(CLEANUP)
53
54 $(TARFILE): $(SUBDIRS)
55         @printf "\033[1;36m===[Make package]===\033[0m\n" $@
56         @mkdir -p $(dir $@)
57         rm -f $@
58         tar -czvf $@ COPYING.txt -C $(BINDIR) $(EXEFILE) BUILD_TAG.txt
59         @printf "\033[1;32mCompleted.\033[0m\n"
60
61 $(SUBDIRS):
62         @printf "\033[1;36m===[Make %s]===\033[0m\n" $@
63         $(MAKE) -B -C $@
64         @printf "\033[1;32mCompleted.\033[0m\n"
65         
66 $(CLEANUP):
67         @printf "\033[1;31m===[Clean %s]===\033[0m\n" $(basename $@)
68         $(MAKE) -B -C $(basename $@) clean
69         @printf "\033[1;32mExtinguished.\033[0m\n"