comparison Makefile @ 125:76e5e8597a83

fixes for ldc on windows
author eldar
date Fri, 05 Jun 2009 14:54:20 +0000
parents a5cba313c924
children 7ae9bc9d6935
comparison
equal deleted inserted replaced
124:138753025375 125:76e5e8597a83
8 export QTDIR_INC 8 export QTDIR_INC
9 export QTDIR_LIB 9 export QTDIR_LIB
10 ## End. Read variable from shell. 10 ## End. Read variable from shell.
11 11
12 ## Try identify system. 12 ## Try identify system.
13 ifeq ($(MAKE), mingw32-make) # TODO: add another system. 13 ifeq ($(strip $(shell uname)),Linux)
14 SYSTEM = windows 14 SYSTEM=posix
15 endif 15 else
16 ifndef SYSTEM 16 ifeq ($(strip $(shell uname)),Darwin)
17 SYSTEM = posix 17 SYSTEM=posix
18 else
19 SYSTEM=windows
20 endif
18 endif 21 endif
19 ## End, Try identify system. 22 ## End, Try identify system.
20 23
21 ## Load system specify settings. 24 ## Load system specify settings.
22 include build/$(SYSTEM).makefile 25 include build/$(SYSTEM).makefile
23 26
24 ## Main settings. 27 ## Main settings.
25 ## D compiler. 28 ## D compiler.
26 ifndef $(DC) 29 ifndef $(DC)
27 DC = dmd 30 DC = ldmd
28 endif 31 endif
29 ## C++ compiler. 32 ## C++ compiler.
30 ifndef $(CC) 33 ifndef $(CC)
31 CC = g++ 34 CC = g++
32 endif 35 endif
105 ## DMD compile template bug fix 108 ## DMD compile template bug fix
106 ifeq ($(DC), dmd) 109 ifeq ($(DC), dmd)
107 NOT_SEPARATE_D_OBJ = true 110 NOT_SEPARATE_D_OBJ = true
108 endif 111 endif
109 112
113 ifeq ($(SYSTEM), windows)
114 ifeq ($(DC), dmd)
115 DMD_WIN = true
116 endif
117 endif
118
119 ifeq ($(DMD_WIN), true)
120 CPP_SHARED = true
121 LIB_EXT = lib
122 else
123 LIB_EXT = a
124 endif
110 125
111 ## CPP_SHARED options. 126 ## CPP_SHARED options.
112 ifeq ($(CPP_SHARED), true) 127 ifeq ($(CPP_SHARED), true)
113 CC_CFLAGS += -DCPP_SHARED 128 CC_CFLAGS += -DCPP_SHARED
114 GEN_OPT += --cpp_shared 129 GEN_OPT += --cpp_shared
130 D_CFLAGS += -version=cpp_shared
115 endif 131 endif
116 ## End. CPP_SHARED options. 132 ## End. CPP_SHARED options.
117 133
118 all: dgen build 134 all: dgen build
119 135
164 ## Build d part. 180 ## Build d part.
165 ifeq ($(NOT_SEPARATE_D_OBJ), true) 181 ifeq ($(NOT_SEPARATE_D_OBJ), true)
166 ## DMD compile template bug fix 182 ## DMD compile template bug fix
167 $(1)_D_RULE =$(TMP_PATH)/$(1)_dobj.$(D_OBJ_EXT) 183 $(1)_D_RULE =$(TMP_PATH)/$(1)_dobj.$(D_OBJ_EXT)
168 $$($(1)_D_RULE): 184 $$($(1)_D_RULE):
169 $(DC) $(D_CFLAGS) $(D_INCLUDE) -c $$($(1)_d_files) -of$$($(1)_D_RULE) 185 $(DC) $(D_CFLAGS) $(D_INCLUDE) -c $$($(1)_d_files) -singleobj -of$$($(1)_D_RULE)
170 else 186 else
171 $(1)_D_RULE = $$($(1)_d_files:qt/%.d=$(TMP_PATH)/%_d.o) 187 $(1)_D_RULE = $$($(1)_d_files:qt/%.d=$(TMP_PATH)/%_d.o)
172 endif 188 endif
173 ## End. Build d part. 189 ## End. Build d part.
174 ## Build cpp part. 190 ## Build cpp part.
192 ## End. Build cpp part. 208 ## End. Build cpp part.
193 209
194 DELETE_FILES += $$($(1)_D_RULE) $$($(1)_CPP_RULE) $(OUTPUT_PATH)/$(LIB_PREFIX)$$(qt_$(1)_name)D.$(LIB_EXT) 210 DELETE_FILES += $$($(1)_D_RULE) $$($(1)_CPP_RULE) $(OUTPUT_PATH)/$(LIB_PREFIX)$$(qt_$(1)_name)D.$(LIB_EXT)
195 ## Implib link. 211 ## Implib link.
196 $(1)_LIB = $(OUTPUT_PATH)$(SL)$(LIB_PREFIX)$(NAME_PREFIX)$(1)$(LIB_POSTFIX).$(LIB_EXT) 212 $(1)_LIB = $(OUTPUT_PATH)$(SL)$(LIB_PREFIX)$(NAME_PREFIX)$(1)$(LIB_POSTFIX).$(LIB_EXT)
197 ifeq ($(SYSTEM), windows) 213 ifeq ($(DMD_WIN), true)
198 $$($(1)_LIB): $$($(1)_D_RULE) $$($(1)_CPP_RULE) 214 $$($(1)_LIB): $$($(1)_D_RULE) $$($(1)_CPP_RULE)
199 $(DC) $$($(1)_D_RULE) $$($(1)_CPP_RULE) $(D_LIB_PATH:%=-L-L%) $$($(1)_link_d:%=-L-l%) -lib -of$$($(1)_LIB) 215 $(DC) $$($(1)_D_RULE) $$($(1)_CPP_RULE) $(D_LIB_PATH:%=-L-L%) $$($(1)_link_d:%=-L-l%) -lib -of$$($(1)_LIB)
200 else 216 else
201 $$($(1)_LIB): $$($(1)_D_RULE) $$($(1)_CPP_RULE) 217 $$($(1)_LIB): $$($(1)_D_RULE) $$($(1)_CPP_RULE)
202 $(AR) rcs $$($(1)_LIB) $$($(1)_D_RULE) $$($(1)_CPP_RULE) 218 $(AR) rcs $$($(1)_LIB) $$($(1)_D_RULE) $$($(1)_CPP_RULE)