OSDN Git Service

7c4d1a93f2cf5c2f1a69e365a99afb09d39945b2
[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_TYPE := $(shell $(CXX) -dumpmachine)
13
14 # -----------------------------------------------
15 # DIRECTORIES
16 # -----------------------------------------------
17
18 SUBDIRS = libmhash384 frontend
19 CLEANUP = $(addsuffix .cleanup,$(SUBDIRS))
20
21 # -----------------------------------------------
22 # FILE NAMES
23 # -----------------------------------------------
24
25 OUTDIR = out
26 BINDIR = frontend/bin
27
28 ifeq ($(DEBUG),0)
29   APPNAME = mhash384
30 else
31   APPNAME = mhash384g
32 endif
33
34 ifeq ($(words $(filter %mingw32 %windows-gnu %cygwin %cygnus,$(OS_TYPE))),0)
35   SUFFIX = run
36 else
37   SUFFIX = exe
38 endif
39
40 EXEFILE = $(APPNAME).$(SUFFIX)
41 TARFILE = $(OUTDIR)/$(APPNAME).$(ISODATE).$(OS_TYPE).tgz
42
43 # -----------------------------------------------
44 # MAKE RULES
45 # -----------------------------------------------
46
47 .PHONY: all clean $(SUBDIRS) $(CLEANUP)
48
49 all: $(TARFILE)
50
51 clean: $(CLEANUP)
52
53 $(TARFILE): $(SUBDIRS)
54         @printf "\033[1;36m===[Make package]===\033[0m\n" $@
55         @mkdir -p $(dir $@)
56         rm -f $@
57         tar -czvf $@ COPYING.txt -C $(BINDIR) $(EXEFILE) BUILD_TAG.txt
58         @printf "\033[1;32mCompleted.\033[0m\n"
59
60 $(SUBDIRS):
61         @printf "\033[1;36m===[Make %s]===\033[0m\n" $@
62         $(MAKE) -B -C $@
63         @printf "\033[1;32mCompleted.\033[0m\n"
64         
65 $(CLEANUP):
66         @printf "\033[1;31m===[Clean %s]===\033[0m\n" $(basename $@)
67         $(MAKE) -B -C $(basename $@) clean
68         @printf "\033[1;32mExtinguished.\033[0m\n"