]> git.llucax.com Git - software/druntime.git/blob - src/dmd-posix.mak
Don't use dmd directly in the makefiles, use $(DC)
[software/druntime.git] / src / dmd-posix.mak
1 # Makefile to build the composite D runtime library for Linux
2 # Designed to work with GNU make
3 # Targets:
4 #       make
5 #               Same as make all
6 #       make lib
7 #               Build the runtime library
8 #   make doc
9 #       Generate documentation
10 #       make clean
11 #               Delete unneeded files created by build process
12
13 LIB_BASE=libdruntime-dmd
14 LIB_BUILD=
15 LIB_TARGET=$(LIB_BASE)$(LIB_BUILD).a
16 LIB_MASK=$(LIB_BASE)*.a
17 DUP_TARGET=libdruntime$(LIB_BUILD).a
18 DUP_MASK=libdruntime*.a
19 MAKE_LIB=lib
20
21 DIR_CC=common
22 DIR_RT=compiler/dmd
23 DIR_GC=gc/basic
24
25 CP=cp -f
26 RM=rm -f
27 MD=mkdir -p
28
29 CC=gcc
30 LC=$(AR) -qsv
31 DC=dmd
32
33 LIB_DEST=../lib
34
35 ADD_CFLAGS=-m32
36 ADD_DFLAGS=
37
38 targets : lib doc
39 all     : lib doc
40
41 ######################################################
42
43 ALL_OBJS=
44
45 ######################################################
46
47 ALL_DOCS=
48
49 ######################################################
50
51 unittest :
52         make -fdmd-posix.mak lib MAKE_LIB="unittest"
53         $(DC) -unittest unittest ../import/core/stdc/stdarg -defaultlib="$(DUP_TARGET)" -debuglib="$(DUP_TARGET)"
54         $(RM) stdarg.o
55         unittest
56
57 release :
58         make -fdmd-posix.mak lib MAKE_LIB="release"
59
60 debug :
61         make -fdmd-posix.mak lib MAKE_LIB="debug" LIB_BUILD="-d"
62
63 ######################################################
64
65 lib : $(ALL_OBJS)
66         make -C $(DIR_CC) -fposix.mak $(MAKE_LIB) DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
67         make -C $(DIR_RT) -fposix.mak $(MAKE_LIB) DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
68         make -C $(DIR_GC) -fposix.mak $(MAKE_LIB) DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)"
69         $(RM) $(LIB_TARGET)
70         $(LC) $(LIB_TARGET) `find $(DIR_CC) -name "*.o" | xargs echo`
71         $(LC) $(LIB_TARGET) `find $(DIR_RT) -name "*.o" | xargs echo`
72         $(LC) $(LIB_TARGET) `find $(DIR_GC) -name "*.o" | xargs echo`
73         $(RM) $(DUP_TARGET)
74         $(CP) $(LIB_TARGET) $(DUP_TARGET)
75
76 doc : $(ALL_DOCS)
77         make -C $(DIR_CC) -fposix.mak doc DC=$(DC)
78         make -C $(DIR_RT) -fposix.mak doc DC=$(DC)
79         make -C $(DIR_GC) -fposix.mak doc DC=$(DC)
80
81 ######################################################
82
83 clean :
84         find . -name "*.di" | xargs $(RM)
85         $(RM) $(ALL_OBJS)
86         $(RM) $(ALL_DOCS)
87         make -C $(DIR_CC) -fposix.mak clean
88         make -C $(DIR_RT) -fposix.mak clean
89         make -C $(DIR_GC) -fposix.mak clean
90         $(RM) $(LIB_MASK)
91         $(RM) $(DUP_MASK)
92         $(RM) unittest unittest.o
93
94 install :
95         make -C $(DIR_CC) -fposix.mak install
96         make -C $(DIR_RT) -fposix.mak install
97         make -C $(DIR_GC) -fposix.mak install
98         $(CP) $(LIB_MASK) $(LIB_DEST)/.
99         $(CP) $(DUP_MASK) $(LIB_DEST)/.