source: svn/trunk/zas_dstar/build/rules.mak @ 2

Last change on this file since 2 was 2, checked in by phkim, 11 years ago

1.phkim

  1. revision copy newcon3sk r27
File size: 7.9 KB
Line 
1.PHONY: all clean depend install dummy
2
3CC = $(CROSS_COMPILE)gcc
4CXX = $(CROSS_COMPILE)g++
5AR = $(CROSS_COMPILE)ar
6LD = $(CROSS_COMPILE)ld
7RANLIB = $(CROSS_COMPILE)ranlib
8
9TARGET_PREFIX = $(BASEPRJDIR)/candidates
10INCDIR = . $(BASEINCDIR) $(EXTRA_INCLUDE_DIR)
11
12CFLAGS  = -Wall -g $(EXTRA_CFLAGS)
13CFLAGS  += $(addprefix -D, $(GLOBAL_DEFINES))
14CFLAGS  += $(addprefix -D, $(DEFINES))
15CFLAGS  += $(addprefix -I, $(BASEINCDIR))
16CFLAGS  += $(addprefix -I, $(EXTRA_INCLUDE_DIR))
17CFLAGS  += -DDSTAR
18CXXFLAGS = $(CFLAGS)
19
20ARFLAGS =       rcs
21LDFLAGS =       $(EXTRA_LDFLAGS)
22
23PARENT_DIR_NAME_PATH = $(shell dirname `pwd`)
24PARENT_DIR_NAME = $(notdir $(PARENT_DIR_NAME_PATH))
25
26ifdef LIBNAME
27 LIBFILE = lib$(LIBNAME).a
28 ifeq "$(OS_TYPE)" "Linux"
29   ifeq ($(MAKE_STATIC),1)
30     BUILD_TARGET = $(LIBFILE)
31   else
32     SHARED_LIBFILE = lib$(LIBNAME).so
33     ifeq "$(LIBTYPE)" "shared"
34     BUILD_TARGET = $(SHARED_LIBFILE)
35     else
36     BUILD_TARGET = $(LIBFILE)
37     endif
38   endif
39 else
40     CFLAGS += -DUSE_CYGWIN
41     BUILD_TARGET = $(LIBFILE)
42 endif
43
44BUILD_TARGET = $(LIBFILE) $(SHARED_LIBFILE)
45
46 BUILD_LIBRARY = 1
47else
48ifdef EXECUTABLENAME
49 BUILD_TARGET = $(EXECUTABLENAME)
50 ifeq "$(OS_TYPE)" "Linux"
51 else
52   CFLAGS += -DUSE_CYGWIN
53  endif
54else
55 ifdef NORMAL_EXECUTABLENAME
56   BUILD_TARGET = $(NORMAL_EXECUTABLENAME)
57 else
58   LINKFILE = link$(shell basename `pwd`).o
59   BUILD_TARGET = $(LINKFILE)
60 endif
61endif
62endif
63
64ifndef SUBDIRS
65 ifndef SOURCEFILES
66  LINKFILE =
67  BUILD_TARGET =
68 endif
69endif
70
71VERSIONED_BUILD_TARGET = $(BUILD_TARGET).$(LIB_VERSION).$(LIB_SUB_VERSION)
72
73ifeq "$(MAKECMDGOALS)" "clean"
74 RECURSE_MAKE_GOAL = $(MAKECMDGOALS)
75endif
76
77ifeq "$(MAKECMDGOALS)" "depend"
78 RECURSE_MAKE_GOAL = $(MAKECMDGOALS)
79endif
80
81ifeq "$(MAKECMDGOALS)" "install"
82 RECURSE_MAKE_GOAL = $(MAKECMDGOALS)
83endif
84
85ifeq "$(MAKECMDGOALS)" "distclean"
86 RECURSE_MAKE_GOAL = $(MAKECMDGOALS)
87endif
88
89
90OBJS = $(TTFFILES:.ttf=.o) $(BMPFILES:.bmp=.o) $(PNGFILES:.png=.o) $(patsubst %.c, %.o, $(patsubst %.cpp, %.o, $(SOURCEFILES)))
91ifdef SUBDIRS
92 ifndef RECURSE_MAKE_GOAL
93  OBJS += $(join $(SUBDIRS), $(patsubst %, /link%.o, $(notdir $(SUBDIRS))))
94 endif
95endif
96
97BUILD_OBJS = $(addprefix $(BUILD_OBJS_DIR)/, $(notdir $(OBJS)))
98
99.SUFFIXES:
100.SUFFIXES: .c .cpp .o .h .bmp .png .ttf
101#VPATH = $(INCDIR)
102
103#
104# Makefile rules
105#
106
107all: $(CONF_SUBDIRS) $(SUBDIRS) $(NOLINKSUBDIRS) $(BUILD_TARGET)
108
109ifeq "$(BUILD_TARGET)" ""
110clean: $(CONF_SUBDIRS) $(SUBDIRS) $(NOLINKSUBDIRS)
111else
112ifdef EXECUTABLENAME
113clean: $(CONF_SUBDIRS) $(SUBDIRS) $(NOLINKSUBDIRS)
114        rm -f $(BUILD_TARGET) $(BUILD_RESULT_DIR)/$(BUILD_TARGET) $(OBJS) .depend .depend.bak
115        rm -rf $(BMPFILES:.bmp=.c)
116        rm -rf $(PNGFILES:.png=.c)
117        rm -rf $(TTFFILES:.ttf=.c)
118else
119clean: $(CONF_SUBDIRS) $(SUBDIRS) $(NOLINKSUBDIRS)
120        rm -f $(BUILD_OBJS_DIR)/*.o $(BUILD_TARGET) $(OBJS) .depend .depend.bak $(BUILD_OBJS_DIR)/*.so $(BUILD_OBJS_DIR)/*.a $(BUILD_RESULT_DIR)/*.so $(BUILD_RESULT_DIR)/*.a
121endif
122endif
123
124.bmp.c :
125        ../bmp2src $< > $(<:.bmp=.c)
126
127.png.c :
128        ../png2src $< > $(<:.png=.c)
129
130.ttf.c :
131        ../bin2src $< > $(<:.ttf=.c)
132       
133depend: $(SUBDIRS) $(NOLINKSUBDIRS)
134        if [ ! -f .depend ]; then touch .depend; fi
135        makedepend -f.depend -- $(CFLAGS) -- $(SOURCEFILES)
136
137distclean: $(CONF_SUBDIRS) $(SUBDIRS) $(NOLINKSUBDIRS)
138        rm -f $(BUILD_OBJS_DIR)/*.o $(BUILD_TARGET) $(OBJS) .depend .depend.bak $(BUILD_OBJS_DIR)/*.so $(BUILD_OBJS_DIR)/*.a $(BUILD_RESULT_DIR)/*.so $(BUILD_RESULT_DIR)/*.a
139
140install: $(CONF_SUBDIRS) $(BUILD_TARGET) $(SUBDIRS) $(NOLINKSUBDIRS)
141#       echo Install...   
142#ifdef BUILD_LIBRARY
143# ifeq "$(LIBTYPE)" "shared"
144#       install -m 0755 $< $(TARGET_PREFIX)/$(VERSIONED_BUILD_TARGET)
145#       rm -f $(TARGET_PREFIX)/lib/$(BUILD_TARGET)
146#       ln -s $(VERSIONED_BUILD_TARGET) $(TARGET_PREFIX)/lib/$(BUILD_TARGET)
147#       /sbin/ldconfig
148# else
149 #install -m 0644 $^ $(TARGET_PREFIX)/lib
150# endif
151#endif
152
153ifdef SUBDIRS
154$(SUBDIRS): dummy
155        $(MAKE) -C $@ $(RECURSE_MAKE_GOAL)
156endif
157
158ifdef NOLINKSUBDIRS
159$(NOLINKSUBDIRS): dummy
160        $(MAKE) -C $@ $(RECURSE_MAKE_GOAL)
161endif
162
163#
164# Make Target which needs Configuration
165#
166ifdef CONF_SUBDIRS
167$(CONF_SUBDIRS): dummy
168        $(MAKE) -C $@ -f Makefile.Conf $(RECURSE_MAKE_GOAL)
169        $(MAKE) -C $@ $(RECURSE_MAKE_GOAL)
170endif
171
172ifdef LINKFILE
173ifndef SUBDIRS
174$(LINKFILE): $(OBJS)
175        $(LD) $(LDFLAGS) -r -o $(BUILD_OBJS_DIR)/$(PARENT_DIR_NAME)$@ \
176        $(addprefix $(BUILD_OBJS_DIR)/, $(notdir $^))
177        ln -fs $(BUILD_OBJS_DIR)/$(PARENT_DIR_NAME)$(notdir $@) $@
178else
179$(LINKFILE): $(OBJS)
180        $(LD) $(LDFLAGS) -r -o $(BUILD_OBJS_DIR)/$@ $^
181        ln -fs $(BUILD_OBJS_DIR)/$(notdir $@) $@
182endif
183endif
184
185ifdef SHARED_LIBFILE
186$(SHARED_LIBFILE): $(OBJS)
187        $(LD) $(LDFLAGS) -shared -o $@ $^ $(SHARED_LD_LIBS) -L$(BUILD_OBJS_DIR)
188        $(CC) $(LDFLAGS) -shared -o $@ $^ $(SHARED_LD_LIBS) -L$(BUILD_OBJS_DIR)
189        mv -f $@ $(BUILD_OBJS_DIR)/$@
190        cp $(BUILD_OBJS_DIR)/$(notdir $(SHARED_LIBFILE)) $(BUILD_RESULT_DIR)
191#       cp $(BUILD_OBJS_DIR)/$(notdir $(SHARED_LIBFILE)) $(REMOTE_BUILD_RESULT_DIR)
192#       cp $(BUILD_RESULT_DIR)/liblist_$(PLATFORM) $(BUILD_RESULT_DIR)/liblist
193endif
194
195ifdef NORMAL_EXECUTABLENAME
196$(NORMAL_EXECUTABLENAME): $(OBJS)
197        $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBDIRS) $(LIBS)
198        mv $@ $(BUILD_RESULT_DIR)
199endif
200
201ifdef EXECUTABLENAME
202$(EXECUTABLENAME): $(OBJS)
203#Ç×»ó targetshellÀº ´Ù½Ã compileÇÑ´Ù.
204        rm -f $(SYMBOL_DIR)/$(TSHELL_OBJ)
205        $(CC) $(CFLAGS)  -o $(BUILD_OBJS_DIR)/$(TSHELL_OBJ) -c $(SYMBOL_DIR)/$(TSHELL_SRC)
206        ln -s $(BUILD_OBJS_DIR)/$(TSHELL_OBJ)  $(SYMBOL_DIR)/$(TSHELL_OBJ)
207#¸ÕÀú partial obj¸¦ ¸ÕÀú ¸¸µç´Ù.( NO FLAGS_WITH_SYM)
208        $(CXX) -shared $(LDFLAGS) -o $(PARTIAL_OBJ) $^ $(BUILD_OBJS_DIR)/$(TSHELL_OBJ) $(LIBDIRS) $(LIBS)
209#¹Ì¸® ¸¸µé¾îÁø ÆÄÀÏÀÌ ÀÖ´Â °æ¿ì Áö¿î´Ù.
210        rm -f $(SYMBOL_DIR)/$(SYMBOL_TXT) $(SYMBOL_DIR)/$(SYMBOL_SRC) $(SYMBOL_DIR)/$(SYMBOL_OBJ) $(SYMBOL_DIR)/$(TSHELL_OBJ)
211#partial obj¿¡¼­ ºÎÅÍ symbolÁ¤º¸¸¦ °¡Á®¿Í¼­ symbol.txt¸¦ ¸¸µç´Ù.
212# ¿©±â¿¡ ´Ù¸¥ lib¸¦ Ãß°¡Çصµ µÈ´Ù. ¿¹¸¦ µé¾î dsthal
213# nm obj_file1 obj_file2 obj_file3 > output_file
214        $(NM) $(NM_SYM_FLAG) $(PARTIAL_OBJ) > $(SYMBOL_DIR)/$(SYMBOL_TXT)
215        $(NM) $(NM_SYM_FLAG) $(ADDITIONAL_LIB) >> $(SYMBOL_DIR)/$(SYMBOL_TXT)
216#symbol.txt¿¡¼­ DMW_SymTbl.c¸¦ ¸¸µç´Ù.
217        $(CC) $(MAKESYM_OPT) -o $(SYMBOL_DIR)/$(MAKESYM_EXE) $(SYMBOL_DIR)/$(MAKESYM_SRC)
218        $(MAKESYMTBL)
219#DMW_SymTbl.c¿Í DMW_TargetShell.c¸¦ ´Ù½Ã ÄÄÆÄÀÏÇÑ´Ù. *.o¸¦ ¸¸µç´Ù.
220        $(CC) $(CFLAGS) $(FLAGS_WITH_SYM) -o $(BUILD_OBJS_DIR)/$(TSHELL_OBJ) -c $(SYMBOL_DIR)/$(TSHELL_SRC)
221        $(CC) $(CFLAGS) $(FLAGS_WITH_SYM) -o $(BUILD_OBJS_DIR)/$(SYMBOL_OBJ) -c $(SYMBOL_DIR)/$(SYMBOL_SRC)
222#Àû´çÈ÷ linkÇØÁØ´Ù.
223        ln -s $(BUILD_OBJS_DIR)/$(SYMBOL_OBJ)  $(SYMBOL_DIR)/$(SYMBOL_OBJ)
224        ln -s $(BUILD_OBJS_DIR)/$(TSHELL_OBJ)  $(SYMBOL_DIR)/$(TSHELL_OBJ)
225#ÇÊ¿ä¾ø´Â ÆÄÀÏÀ» Áö¿î´Ù.
226        rm -f $(PARTIAL_OBJ)
227#´Ù½Ã DMW_TargetShell.o,DMW_SymTbl.o¸¦ Æ÷ÇÔÇØ¼­ Àüü¸¦ linkÇÑ´Ù. (FLAGS_WITH_SYM)
228        $(CXX) $(LDFLAGS) $(FLAGS_WITH_SYM) -o $@ $^ $(SYMBOL_DIR)/$(TSHELL_OBJ) $(SYMBOL_DIR)/$(SYMBOL_OBJ) $(LIBDIRS) $(LIBS)
229        mv -f $@ $(BUILD_OBJS_DIR)/$@
230        ln -fs $(BUILD_OBJS_DIR)/$(notdir $@) $@
231        cp $(BUILD_OBJS_DIR)/$(EXECUTABLENAME) $(BUILD_RESULT_DIR)
232        gcc $(BUILD_RESULT_DIR)/bin2ts.cpp -o bin2ts.exe
233        zip $(BUILD_RESULT_DIR)/$(EXECUTABLENAME).zip $(BUILD_RESULT_DIR)/$(EXECUTABLENAME)
234        bin2ts.exe $(MODEL_NAME) $(SW_VERSION) $(BUILD_RESULT_DIR)/$(EXECUTABLENAME).zip $(BUILD_RESULT_DIR)/$(EXECUTABLENAME).ts
235        rm $(EXECUTABLENAME)
236endif
237
238ifdef LIBFILE
239$(BUILD_OBJS_DIR)/$(notdir $(LIBFILE)): $(OBJS)
240        $(AR) $(ARFLAGS) $(BUILD_OBJS_DIR)/$(notdir $@) \
241        $(BUILD_OBJS_DIR)/$(notdir $^)
242        ln -fs $(BUILD_OBJS_DIR)/$(notdir $@) $@
243
244$(LIBFILE): $(OBJS)
245        $(RM) $(BUILD_OBJS_DIR)/$(notdir $@)
246        $(AR) $(ARFLAGS) $(BUILD_OBJS_DIR)/$@ $^
247        ln -fs $(BUILD_OBJS_DIR)/$(notdir $@) $@
248        $(RANLIB) $(BUILD_OBJ_DIR)$(notdir $(LIBFILE))
249        cp $(BUILD_OBJS_DIR)/$(notdir $(LIBFILE)) $(BUILD_RESULT_DIR)
250endif
251
252%.o: %.c
253        rm -f $@
254        $(CC) $(CFLAGS) -c -o $@ $<
255        mv -f $(patsubst %.c, %.o, $<) $(BUILD_OBJS_DIR)
256        ln -fs $(BUILD_OBJS_DIR)/$(notdir $(patsubst %.c, %.o, $@)) $(patsubst %.c, %.o ,$@)
257
258%.o: %.cpp
259        rm -f $@
260        $(CXX) $(CXXFLAGS) -c -o $@ $<
261        mv -f $(patsubst %.cpp, %.o, $<) $(BUILD_OBJS_DIR)
262        ln -fs $(BUILD_OBJS_DIR)/$(notdir $(patsubst %.cpp, %.o, $@)) \
263        $(patsubst %.cpp, %.o, $@)
264       
265ifneq "$(strip $(wildcard .depend))" ""
266include .depend
267endif
268
Note: See TracBrowser for help on using the repository browser.