blob: 4d39fbc585634bd48d8847c0b0a036b2e3166486 [file] [log] [blame]
Emeric Vigier2f625822012-08-06 11:09:52 -04001#######################################################
2# MAKEFILE for building ccgnu2.dll and ccext2.dll #
3# #
4# (c) 2004 by Darko Miletic #
5# e-mail: kiklop@fibertel.com.ar #
6# #
7# Modified 24-Aug-2005 by Conrad T. Pino #
8# e-mail: Conrad@Pino.com #
9# Compile with Borland C++ Builder 6.0 #
10#######################################################
11.autodepend
12
13!ifndef CC
14CC=bcc32
15!endif
16
17ILINK32=ilink32
18
19!ifndef BMODE
20BMODE = RELEASE
21!endif
22
23!if $(BMODE) != RELEASE && $(BMODE) != DEBUG
24! error Illegal value for BMODE option
25!endif
26
27#C++ compile flags
28!if $(BMODE) == RELEASE
29CPPFLAGS=-q -v- -O2 -k- -tWD -tWM -w-inl -w-par -w-aus -w-pia -w-ccc -w-rch -w-csu -w-hid -w-pro -D$(USERDEFINES);$(SYSDEFINES) -I$(INCDIR)
30LINKFLAGS=-v- -Tpd -aa -Gn -Gi -c -L$(LIBDIR)
31USERDEFINES=_WINVER=0x0400;_WIN32_WINNT=0x0400;STRICT;_MBCS;NODEBUG;WIN32;_USRDLL;_WINDOWS;CCGNU2_EXPORTS;CCEXT2_EXPORTS
32OUTDIR=Release
33DBG=
34!message Building release version of dll'S
35!else
36CPPFLAGS=-q -v -Od -k -tWD -tWM -Q+ -D$(USERDEFINES);$(SYSDEFINES) -I$(INCDIR)
37LINKFLAGS=-v -Tpd -aa -Gn -Gi -c -L$(LIBDIR)
38USERDEFINES=_WINVER=0x0400;_WIN32_WINNT=0x0400;STRICT;_MBCS;_DEBUG;WIN32;_USRDLL;_WINDOWS;CCGNU2_EXPORTS;CCEXT2_EXPORTS
39OUTDIR=Debug
40DBG=D
41!message Building debug version of dll'S
42!endif
43
44.cpp.obj:
45 @$(CC) $(CPPFLAGS) -I$(INCDIR) /c -o$@ $<
46
47.c.obj:
48 @$(CC) $(CPPFLAGS) -I$(INCDIR) /c -o$@ $<
49
50LIBBASE1=ccgnu2$(DBG)
51LIBBASE2=ccext2$(DBG)
52
53LIBNAME1=$(LIBBASE1).dll
54LIBNAME2=$(LIBBASE2).dll
55INCDIR=..\w32;..\include
56LIBDIR=.\$(OUTDIR)
57SRC=..\src
58OBJ=.\$(OUTDIR)\obj
59BIN=.\$(OUTDIR)
60#RESFILE=CCXX2.res
61SYSDEFINES=
62
63################################
64# Target
65################################
66PROJECT1=$(BIN)\$(LIBNAME1)
67PROJECT2=$(BIN)\$(LIBNAME2)
68
69OBJFILES1=$(OBJ)\dir.obj \
70 $(OBJ)\dso.obj \
71 $(OBJ)\event.obj \
72 $(OBJ)\exception.obj \
73 $(OBJ)\file.obj \
74 $(OBJ)\friends.obj \
75 $(OBJ)\in6addr.obj \
76 $(OBJ)\inaddr.obj \
77 $(OBJ)\keydata.obj \
78 $(OBJ)\mempager.obj \
79 $(OBJ)\missing.obj \
80 $(OBJ)\mutex.obj \
81 $(OBJ)\nat.obj \
82 $(OBJ)\peer.obj \
83 $(OBJ)\process.obj \
84 $(OBJ)\semaphore.obj \
85 $(OBJ)\simplesocket.obj \
86 $(OBJ)\slog.obj \
87 $(OBJ)\socket.obj \
88 $(OBJ)\strchar.obj \
89 $(OBJ)\string.obj \
90 $(OBJ)\thread.obj \
91 $(OBJ)\threadkey.obj
92
93OBJFILES2=$(OBJ)\buffer.obj \
94 $(OBJ)\cmdoptns.obj \
95 $(OBJ)\date.obj \
96 $(OBJ)\digest.obj \
97 $(OBJ)\engine.obj \
98 $(OBJ)\getopt.obj \
99 $(OBJ)\getopt1.obj \
100 $(OBJ)\md5.obj \
101 $(OBJ)\network.obj \
102 $(OBJ)\numbers.obj \
103 $(OBJ)\persist.obj \
104 $(OBJ)\serial.obj \
105 $(OBJ)\unix.obj \
106 $(OBJ)\url.obj \
107 $(OBJ)\urlstring.obj \
108 $(OBJ)\xml.obj
109
110RESFILES=
111LIBFILES=ws2_32.lib
112DEFFILE=
113BCC32STARTUP=c0d32.obj
114BCC32RTLIB=cw32mt.lib
115ALLOBJS1=$(BCC32STARTUP) $(OBJFILES1)
116ALLOBJS2=$(BCC32STARTUP) $(OBJFILES2)
117ALLLIBS=$(LIBFILES) import32.lib $(BCC32RTLIB)
118ALLLIBS1=$(ALLLIBS)
119ALLLIBS2=$(ALLLIBS) $(LIBBASE1).lib
120
121all: dirs $(RESFILE) $(PROJECT1) $(PROJECT2) cleansym
122
123cleanobj::
124 -@echo Deleting intermediate files for project
125 -@if exist $(OBJ)\*.obj del $(OBJ)\*.obj
126
127cleansym::
128!if $(BMODE) == DEBUG
129 -@echo Keeping symbol files for project
130!elif $(BMODE) == RELEASE
131 -@echo Deleting symbol files for project
132 -@if exist $(BIN)\*.tds del $(BIN)\*.tds
133 -@if exist $(BIN)\*.map del $(BIN)\*.map
134!endif
135
136cleantgt::
137 -@echo Deleting output files for project
138 -@if exist $(BIN)\$(LIBBASE1).* del $(BIN)\$(LIBBASE1).*
139 -@if exist $(BIN)\$(LIBBASE2).* del $(BIN)\$(LIBBASE2).*
140
141clean: cleanobj cleantgt
142 -@echo Deleting output directory
143 -@if exist $(OBJ) rd $(OBJ)
144 -@if exist $(BIN) rd $(BIN)
145
146dirs::
147 -@echo Creating output directory
148 -@if not exist $(BIN) md $(BIN)
149 -@if not exist $(OBJ) md $(OBJ)
150
151##################################
152# Output
153##################################
154$(PROJECT1):: $(OBJFILES1)
155 $(ILINK32) @&&|
156 $(LINKFLAGS) $(ALLOBJS1)
157 $<,$*
158 $(ALLLIBS1)
159 $(DEFFILE)
160 $(RESFILE)
161
162|
163
164$(PROJECT2):: $(PROJECT) $(OBJFILES2)
165 $(ILINK32) @&&|
166 $(LINKFLAGS) $(ALLOBJS2)
167 $<,$*
168 $(ALLLIBS2)
169 $(DEFFILE)
170 $(RESFILE)
171
172|
173
174#Dependencies - explicit rules
175$(OBJ)\dir.obj: $(SRC)\dir.cpp
176$(OBJ)\dso.obj: $(SRC)\dso.cpp
177$(OBJ)\event.obj: $(SRC)\event.cpp
178$(OBJ)\exception.obj: $(SRC)\exception.cpp
179$(OBJ)\file.obj: $(SRC)\file.cpp
180$(OBJ)\friends.obj: $(SRC)\friends.cpp
181$(OBJ)\in6addr.obj: $(SRC)\in6addr.cpp
182$(OBJ)\inaddr.obj: $(SRC)\inaddr.cpp
183$(OBJ)\keydata.obj: $(SRC)\keydata.cpp
184$(OBJ)\mempager.obj: $(SRC)\mempager.cpp
185$(OBJ)\missing.obj: $(SRC)\missing.cpp
186$(OBJ)\mutex.obj: $(SRC)\mutex.cpp
187$(OBJ)\nat.obj: $(SRC)\nat.cpp
188$(OBJ)\peer.obj: $(SRC)\peer.cpp
189$(OBJ)\process.obj: $(SRC)\process.cpp
190$(OBJ)\semaphore.obj: $(SRC)\semaphore.cpp
191$(OBJ)\simplesocket.obj: $(SRC)\simplesocket.cpp
192$(OBJ)\slog.obj: $(SRC)\slog.cpp
193$(OBJ)\socket.obj: $(SRC)\socket.cpp
194$(OBJ)\strchar.obj: $(SRC)\strchar.cpp
195$(OBJ)\string.obj: $(SRC)\string.cpp
196$(OBJ)\thread.obj: $(SRC)\thread.cpp
197$(OBJ)\threadkey.obj: $(SRC)\threadkey.cpp
198
199$(OBJ)\buffer.obj: $(SRC)\buffer.cpp
200$(OBJ)\cmdoptns.obj: $(SRC)\cmdoptns.cpp
201$(OBJ)\date.obj: $(SRC)\date.cpp
202$(OBJ)\digest.obj: $(SRC)\digest.cpp
203$(OBJ)\engine.obj: $(SRC)\engine.cpp
204$(OBJ)\getopt.obj: $(SRC)\getopt.c
205$(OBJ)\getopt1.obj: $(SRC)\getopt1.c
206$(OBJ)\md5.obj: $(SRC)\md5.cpp
207$(OBJ)\network.obj: $(SRC)\network.cpp
208$(OBJ)\numbers.obj: $(SRC)\numbers.cpp
209$(OBJ)\persist.obj: $(SRC)\persist.cpp
210$(OBJ)\serial.obj: $(SRC)\serial.cpp
211$(OBJ)\unix.obj: $(SRC)\unix.cpp
212$(OBJ)\url.obj: $(SRC)\url.cpp
213$(OBJ)\urlstring.obj: $(SRC)\urlstring.cpp
214$(OBJ)\xml.obj: $(SRC)\xml.cpp
215
216#$(RESFILE):
217# @brcc32 -d__MINGW32__ CCXX2.rc
218