1# stone simple repeater 2# Copyright(c)1995-2004 by Hiroaki Sengoku <sengoku@gcd.org> 3# 4# -DUSE_POP use POP -> APOP conversion 5# -DUSE_SSL use OpenSSL 6# -DCPP preprocessor for reading config. file 7# -DIGN_SIGTERM ignore SIGTERM signal 8# -DUNIX_DAEMON fork into background and become a UNIX Daemon 9# -DNO_BCOPY without bcopy(3) 10# -DNO_SNPRINTF without snprintf(3) 11# -DNO_SYSLOG without syslog(2) 12# -DNO_RINDEX without rindex(3) 13# -DNO_THREAD without thread 14# -DNO_PID_T without pid_t 15# -DNO_ADDRINFO without getaddrinfo 16# -DPTHREAD use Posix Thread 17# -DPRCTL use prctl(2) - operations on a process 18# -DOS2 OS/2 with EMX 19# -DWINDOWS Windows95/98/NT 20# -DNT_SERVICE WindowsNT/2000 native service 21 22 23SSL= /usr/local/ssl 24SSL_FLAGS= -DUSE_SSL -DCONST_SSL_METHOD -DOPENSSL_NO_TLS1 -DOPENSSL_NO_SSL2 -DOPENSSL_NO_SSL3 25SSL_LIBS= -lssl -lcrypto 26 27POP_FLAGS= -DUSE_POP 28POP_LIBS= md5c.o 29 30MINGWCC= mingw32-gcc 31MC= wmc 32RC= wrc 33WINDRES= windres 34SVC_LIBS= logmsg.o 35 36all: 37 @echo "run make with one of the following arguments" 38 @echo "linux ; for Linux" 39 @echo "zaurus ; for Linux Zaurus" 40 @echo "fon ; for La Fonera" 41 @echo "bsd ; for FreeBSD or BSD/OS" 42 @echo "macosx ; for Mac OS X" 43 @echo "sun ; for SunOS 4.x with gcc" 44 @echo "solaris ; for Solaris with gcc" 45 @echo "hp ; for HP-UX with gcc" 46 @echo "irix ; for IRIX" 47 @echo "win ; for Windows 95/NT with VC++" 48 @echo "win-svc ; for Windows NT service with VC++" 49 @echo "mingw ; for Windows 95/NT with MinGW" 50 @echo "mingw-svc ; for Windows NT service with MinGW" 51 @echo "emx ; for OS/2 with EMX" 52 @echo "using POP -> APOP conv., add '-pop' (example: linux-pop)" 53 @echo "using above conv. and OpenSSL, add '-ssl' (example: linux-ssl)" 54 55clean: 56 rm -f stone $(POP_LIBS) stone.exe stone.obj md5c.obj stone.o $(SVC_LIBS) MSG00001.bin logmsg.h logmsg.rc cryptoapi.o 57 58md5c.c: 59 @echo "*** md5c.c is contained in RFC1321" 60 61stone: stone.c 62 $(CC) $(CFLAGS) $(FLAGS) -o $@ $? $(LIBS) 63 64pop_stone: $(POP_LIBS) 65 $(MAKE) FLAGS="$(POP_FLAGS)" LIBS="$(POP_LIBS)" $(TARGET) 66 67ssl_stone: 68 $(MAKE) FLAGS="$(POP_FLAGS) $(SSL_FLAGS) $(FLAGS)" LIBS="$(LIBS) $(SSL_LIBS)" $(TARGET) 69 70stone.exe: stone.c 71 $(CC) $(CFLAGS) $(FLAGS) $? $(LIBS) 72 73pop_stone.exe: md5c.obj 74 $(MAKE) FLAGS=$(POP_FLAGS) LIBS="md5c.obj" $(TARGET) 75 76ssl_stone.exe: cryptoapi.obj 77 $(MAKE) FLAGS="$(POP_FLAGS) $(SSL_FLAGS) -DCRYPTOAPI $(FLAGS)" LIBS="cryptoapi.obj ssleay32.lib libeay32.lib crypt32.lib $(LIBS)" $(TARGET) 78 79svc_stone.exe: logmsg.res 80 $(MAKE) FLAGS="/DNT_SERVICE $(FLAGS)" LIBS="logmsg.res advapi32.lib user32.lib gdi32.lib shell32.lib kernel32.lib" $(TARGET) 81 82logmsg.rc: logmsg.mc 83 $(MC) -i $? 84 85logmsg.res: logmsg.rc 86 $(RC) $? 87 88logmsg.o: logmsg.res 89 $(WINDRES) $? -o $@ 90 91cryptoapi.o: cryptoapi.c 92 $(MINGWCC) -c $? -o $@ 93 94svc_stone: logmsg.rc $(SVC_LIBS) 95 $(MAKE) FLAGS="-DNT_SERVICE $(FLAGS)" LIBS="$(LIBS) $(SVC_LIBS) -ladvapi32 -luser32 -lshell32 -lkernel32" $(TARGET) 96 97linux: 98 $(MAKE) FLAGS="-O -Wall -DCPP='\"/usr/bin/cpp -traditional\"' -DPTHREAD -DUNIX_DAEMON -DPRCTL -DSO_ORIGINAL_DST=80 -DUSE_EPOLL $(FLAGS)" LIBS="-lpthread $(LIBS)" stone 99 100linux-pop: 101 $(MAKE) TARGET=linux pop_stone 102 103linux-ssl: 104 $(MAKE) TARGET=linux ssl_stone LIBS="-ldl" 105 106zaurus: 107 $(MAKE) CC="arm-linux-gcc" FLAGS="-O -Wall -DPTHREAD -DUNIX_DAEMON $(FLAGS)" LIBS="-lpthread $(LIBS)" stone 108 arm-linux-strip stone 109 110zaurus-pop: 111 $(MAKE) CC="arm-linux-gcc" TARGET=zaurus pop_stone 112 113zaurus-ssl: 114 $(MAKE) CC="arm-linux-gcc" SSL_LIBS="-lssl -lcrypto" TARGET=zaurus ssl_stone 115 116fon: 117 $(MAKE) CC="mips-linux-uclibc-gcc" FLAGS="-O -Wall -DPTHREAD -DUNIX_DAEMON -DPRCTL $(FLAGS)" LIBS="-lpthread $(LIBS)" stone 118 mips-linux-uclibc-strip stone 119 120fon-pop: 121 $(MAKE) CC="mips-linux-uclibc-gcc" TARGET=fon pop_stone 122 123fon-ssl: 124 $(MAKE) CC="mips-linux-uclibc-gcc" SSL_LIBS="-lssl -lcrypto" TARGET=fon ssl_stone 125 126bsd: 127 $(MAKE) FLAGS="-DCPP='\"/usr/bin/cpp -traditional\"' -D_THREAD_SAFE -DPTHREAD -DREG_NOERROR=0 $(FLAGS)" LIBS="-pthread $(LIBS)" stone 128 129bsd-pop: 130 $(MAKE) TARGET=bsd pop_stone 131 132bsd-ssl: 133 $(MAKE) TARGET=bsd ssl_stone 134 135macosx: 136 $(MAKE) FLAGS="-DCPP='\"/usr/bin/cpp -traditional\"' -D_THREAD_SAFE -DPTHREAD $(FLAGS)" stone 137 138macosx-pop: 139 $(MAKE) TARGET=macosx pop_stone 140 141macosx-ssl: 142 $(MAKE) TARGET=macosx SSL=/usr ssl_stone 143 144sun: 145 $(MAKE) CC=gcc FLAGS="-DNO_ADDRINFO -DNO_SNPRINTF -DIGN_SIGTERM -DCPP='\"/usr/lib/cpp\"' $(FLAGS)" stone 146 147sun-pop: 148 $(MAKE) TARGET=sun pop_stone 149 150sun-ssl: 151 $(MAKE) TARGET=sun ssl_stone 152 153solaris: 154 $(MAKE) CC=gcc FLAGS="-DPTHREAD -D_REENTRANT $(FLAGS)" LIBS="-lnsl -lsocket -lpthread -lthread $(LIBS)" stone 155 156solaris-pop: 157 $(MAKE) TARGET=solaris pop_stone 158 159solaris-ssl: 160 $(MAKE) TARGET=solaris ssl_stone 161 162hp: 163 $(MAKE) CC=gcc FLAGS="-DNO_SNPRINTF -DH_ERRNO -DCPP='\"/lib/cpp\"' $(FLAGS)" stone 164 165hp-pop: 166 $(MAKE) TARGET=hp pop_stone 167 168hp-ssl: 169 $(MAKE) TARGET=hp ssl_stone 170 171irix: 172 $(MAKE) FLAGS="-DNO_SNPRINTF $(FLAGS)" stone 173 174irix-pop: 175 $(MAKE) TARGET=irix pop_stone 176 177irix-ssl: 178 $(MAKE) TARGET=irix ssl_stone 179 180win: 181# $(MAKE) FLAGS="/Zi /DUSE_PCRE /DWINDOWS /DNO_RINDEX /DNO_SNPRINTF /DNO_VSNPRINTF /DNO_PID_T $(FLAGS)" LIBS="/MT ws2_32.lib libpcreposix.lib $(LIBS) /link /NODEFAULTLIB:LIBC" stone.exe 182 $(MAKE) FLAGS="/Zi /DUSE_PCRE /DWINDOWS /DNO_RINDEX /DNO_PID_T $(FLAGS)" LIBS="/MT ws2_32.lib libpcreposix.lib $(LIBS) /link /NODEFAULTLIB:LIBC" stone.exe 183 184win-pop: 185 $(MAKE) TARGET=win pop_stone.exe 186 187win-ssl: 188 $(MAKE) FLAGS="$(FLAGS)" TARGET=win ssl_stone.exe 189 190win-svc: 191 $(MAKE) TARGET=win-ssl svc_stone.exe 192 193mingw.exe: stone.c 194 $(MINGWCC) $(CFLAGS) $(FLAGS) -o stone.exe $? $(LIBS) 195 196mingw: 197 $(MAKE) CC="$(MINGWCC)" FLAGS="-O -Wall -D_WIN32_WINNT=0x0501 -DWINDOWS -DNO_RINDEX -DADDRCACHE $(FLAGS)" LIBS="$(LIBS) -lws2_32 -lregex -lgdi32" mingw.exe 198 199mingw-pop: 200 $(MAKE) CC="$(MINGWCC)" TARGET=mingw pop_stone 201 202mingw-ssl: cryptoapi.o 203 $(MAKE) CC="$(MINGWCC)" FLAGS="$(FLAGS)" SSL_FLAGS="$(SSL_FLAGS) -DCRYPTOAPI" SSL_LIBS="cryptoapi.o -lssl -lcrypt32 -lssl32 -leay32" TARGET=mingw ssl_stone 204 205mingw-me: 206 $(MAKE) CC="$(MINGWCC)" FLAGS="-DNO_ADDRINFO" mingw-ssl 207 208mingw-nt: 209 $(MAKE) CC="$(MINGWCC)" FLAGS="-DNO_ADDRINFO" TARGET=mingw-ssl svc_stone 210 211mingw-svc: 212 $(MAKE) CC="$(MINGWCC)" TARGET=mingw-ssl svc_stone 213 214emx: 215 $(MAKE) CC=gcc FLAGS="-DOS2 -Zmts -Zsysv-signals $(FLAGS)" LIBS="$(LIBS) -lsocket" stone.exe 216 217emx-pop: 218 $(MAKE) TARGET=emx pop_stone 219 220emx-ssl: 221 $(MAKE) TARGET=emx ssl_stone 222