Emeric Vigier | 2f62582 | 2012-08-06 11:09:52 -0400 | [diff] [blame] | 1 | ####################################################### |
| 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 |
| 14 | CC=bcc32 |
| 15 | !endif |
| 16 | |
| 17 | ILINK32=ilink32 |
| 18 | |
| 19 | !ifndef BMODE |
| 20 | BMODE = 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 |
| 29 | CPPFLAGS=-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) |
| 30 | LINKFLAGS=-v- -Tpd -aa -Gn -Gi -c -L$(LIBDIR) |
| 31 | USERDEFINES=_WINVER=0x0400;_WIN32_WINNT=0x0400;STRICT;_MBCS;NODEBUG;WIN32;_USRDLL;_WINDOWS;CCGNU2_EXPORTS;CCEXT2_EXPORTS |
| 32 | OUTDIR=Release |
| 33 | DBG= |
| 34 | !message Building release version of dll'S |
| 35 | !else |
| 36 | CPPFLAGS=-q -v -Od -k -tWD -tWM -Q+ -D$(USERDEFINES);$(SYSDEFINES) -I$(INCDIR) |
| 37 | LINKFLAGS=-v -Tpd -aa -Gn -Gi -c -L$(LIBDIR) |
| 38 | USERDEFINES=_WINVER=0x0400;_WIN32_WINNT=0x0400;STRICT;_MBCS;_DEBUG;WIN32;_USRDLL;_WINDOWS;CCGNU2_EXPORTS;CCEXT2_EXPORTS |
| 39 | OUTDIR=Debug |
| 40 | DBG=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 | |
| 50 | LIBBASE1=ccgnu2$(DBG) |
| 51 | LIBBASE2=ccext2$(DBG) |
| 52 | |
| 53 | LIBNAME1=$(LIBBASE1).dll |
| 54 | LIBNAME2=$(LIBBASE2).dll |
| 55 | INCDIR=..\w32;..\include |
| 56 | LIBDIR=.\$(OUTDIR) |
| 57 | SRC=..\src |
| 58 | OBJ=.\$(OUTDIR)\obj |
| 59 | BIN=.\$(OUTDIR) |
| 60 | #RESFILE=CCXX2.res |
| 61 | SYSDEFINES= |
| 62 | |
| 63 | ################################ |
| 64 | # Target |
| 65 | ################################ |
| 66 | PROJECT1=$(BIN)\$(LIBNAME1) |
| 67 | PROJECT2=$(BIN)\$(LIBNAME2) |
| 68 | |
| 69 | OBJFILES1=$(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 | |
| 93 | OBJFILES2=$(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 | |
| 110 | RESFILES= |
| 111 | LIBFILES=ws2_32.lib |
| 112 | DEFFILE= |
| 113 | BCC32STARTUP=c0d32.obj |
| 114 | BCC32RTLIB=cw32mt.lib |
| 115 | ALLOBJS1=$(BCC32STARTUP) $(OBJFILES1) |
| 116 | ALLOBJS2=$(BCC32STARTUP) $(OBJFILES2) |
| 117 | ALLLIBS=$(LIBFILES) import32.lib $(BCC32RTLIB) |
| 118 | ALLLIBS1=$(ALLLIBS) |
| 119 | ALLLIBS2=$(ALLLIBS) $(LIBBASE1).lib |
| 120 | |
| 121 | all: dirs $(RESFILE) $(PROJECT1) $(PROJECT2) cleansym |
| 122 | |
| 123 | cleanobj:: |
| 124 | -@echo Deleting intermediate files for project |
| 125 | -@if exist $(OBJ)\*.obj del $(OBJ)\*.obj |
| 126 | |
| 127 | cleansym:: |
| 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 | |
| 136 | cleantgt:: |
| 137 | -@echo Deleting output files for project |
| 138 | -@if exist $(BIN)\$(LIBBASE1).* del $(BIN)\$(LIBBASE1).* |
| 139 | -@if exist $(BIN)\$(LIBBASE2).* del $(BIN)\$(LIBBASE2).* |
| 140 | |
| 141 | clean: cleanobj cleantgt |
| 142 | -@echo Deleting output directory |
| 143 | -@if exist $(OBJ) rd $(OBJ) |
| 144 | -@if exist $(BIN) rd $(BIN) |
| 145 | |
| 146 | dirs:: |
| 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 | |