1# Makefile for PGP (Unix) 2# 3# 4# This makefile is intended for PGP 2.6.3i. PGP 2.6.3i is based on MIT's 5# PGP 2.6.2, but has been modified so that it: 6# 7# (1) does not use RSAREF 8# (2) allows you to disable the "legal kludge" 9# (3) corrects a number of bugs present in PGP 2.6.2 10# (4) adds a number of new features without breaking compatibility 11# with older versions 12# 13# PGP 2.6.3i is probably illegal to use within the USA, so if you're 14# physically inside the US, you should do the following: 15# 16# (1) Obtain and build a copy of the RSAREF 1.0 library (included with 17# MIT PGP 2.6 and later) 18# (2) Add the -DUSA compiler switch to CFLAGS for your system below 19# (3) Comment out the lines for MPILIB (rsaglue1.o) and uncomment the 20# lines for RSAREF (rsaglue2.o) below 21# 22# This will give you a version of PGP called 2.6.3, which is identical 23# to 2.6.3i, except that it uses RSAREF and the "legal kludge" cannot 24# be disabled. 25# 26# 27# CFLAGS options: 28# 29# -DUSA to get a version that is legal to use within the US 30# -DHIGHFIRST if building PGP on a big-endian system 31# -DDEBUG to include debugging information 32# -DNOTERMIO if your system has no termios 33# -DSVR2 for System V release 2 34# -DDYN_ALLOC if your compiler does not support large static arrays 35# -DSMALL_MEM if your machine has a small memory (required for MSDOS) 36# -DIDEA32 if your int's are 32 bits this is probably faster 37# 38# -DPORTABLE and 39# -DMPORTABLE to build the portable version of the RSA primitives 40# (ie if no optimized asm versions are available) 41# 42# Define one of: 43# -DMERRITT Merritt's modmult (fast on risc machines) 44# -DPEASANT Russian peasant modulo multiply algorithm 45# -DUPTON use Upton's modmult algorithm 46# -DSMITH use Smith's modmult 47# See also the file platform.h for system defaults 48# 49# If you don't have a working FIONREAD ioctl you must use one of these: 50# -DUSE_SELECT to use select() system call 51# -DUSE_NBIO to use non-blocking read() 52 53CFLAGS+= -O -DUNIX -DPORTABLE $(BYTEORDER) 54 55# must set byte order for targets "sysv" and "bsd" 56# BYTEORDER= -DHIGHFIRST 57 58CC ?= cc 59LD ?= cc # Link command 60LDFLAGS ?= 61CPP ?= $(CC) -E 62DBG = -O 63RM = rm -f 64 65# uncomment this for old versions of make 66MAKE = make -j 5 67 68ASM = $(CC) -c # Assembler command 69 70OBJS_EXT= # ASM obj. files 71LIBS_EXT= # Libararies 72 73PROJ = pgp 74 75default: 76 @echo "To build PGP on your flavour of Unix, type:" 77 @echo " make <system>" 78 @echo "" 79 @echo "where <system> can be:" 80 @echo " 386bsd, 3b1, 3b1_asm, aix370, aix386, amix-68k-gcc, apollo," 81 @echo " apollo-gcc, atari,aux(*), aux-gcc, bsd, bsdgcc, convexos," 82 @echo " dgux, djgpp, encore, hpux-68k(*), hpux-68k-ansi," 83 @echo " freebsd-{alpha,i386,sparc64,ia64,amd64,powerpc,armv6,armv7,mips,mips64}," 84 @echo " hpux-68k-gcc, hpux-pa(*), hpux-pa-ansi, hpux-pa-gcc, hpux9-pa-ansi," 85 @echo " irix, irix_asm, isc, isc_asm, linux, linux-aout, linux-68k," 86 @echo " machten, mach_386, mips-ultrix, netbsd, netbsd_68k, newsasm," 87 @echo " newsgcc, next, next-intel, next486, nextHP, os2, osf, qnx4," 88 @echo " riscos501, rs6000, rt_aos4, sco-2.0, sco-3.0, sco-3.0-gcc," 89 @echo " sco386cc, sgigcc, sgigcc_asm, sinix, solx86gcc, sun386i," 90 @echo " sun3asm, sun3cc(*), sun3gcc, sun4cc(*), sun4gcc," 91 @echo " sun4sunos5gcc, sun4acc, sun4sunos5acc, sunspc, sysv, sysvgcc," 92 @echo " sysv_386, sysv_386_gcc, unixware, vax-ultrix, vax_bsd43," 93 @echo " xenix286(*), xenix386" 94 @echo "" 95 @echo "For targets marked with (*) you must first get unproto." 96 @echo "See setup.doc for further details." 97 98all: $(PROJ) 99 100# For a pure MPILIB version, uncomment the following lines 101RSALIBS = 102RSAOBJS = rsaglue1.o 103 104# For an RSAREF version, uncomment the following lines 105#RSADIR = ../rsaref 106#RSALIBDIR = $(RSADIR)/install/unix 107#RSAINCDIR = -I$(RSADIR)/source -I$(RSADIR)/test $(USEMPILIB) 108#RSALIBS = $(RSALIBDIR)/rsaref.a 109#RSAOBJS = rsaglue2.o 110 111# If you want to use MPILIB as a back end to RSAREF, uncomment this line: 112#USEMPILIB = -DUSEMPILIB 113 114# Assembly-language subroutine dependencies 115 116_80386.o: 80386.S 117 $(CPP) $(ASMDEF) 80386.S > _80386.s 118 $(ASM) -o _80386.o _80386.s 119 $(RM) _80386.s 120 1218086.o: 8086.asm 122 cp 8086.asm 8086.s 123 $(ASM) -o 8086.o 8086.s 124 $(RM) 8086.s 125 126_zmatch.o: zmatch.S 127 $(CPP) $(ASMDEF) zmatch.S > _zmatch.s 128 $(ASM) -o _zmatch.o _zmatch.s 129 $(RM) _zmatch.s 130 131sparc.o: sparc.S 132 $(CPP) $(ASMDEF) sparc.S | grep -v '^# ' > _sparc.s 133 $(ASM) -o sparc.o _sparc.s 134 $(RM) _sparc.s 135 136mc68020.o: 137 $(ASM) -o mc68020.o mc68020.s 138 139ZIPOBJS= zbits.o zdeflate.o zfile_io.o zglobals.o \ 140 zinflate.o zip.o zipup.o ztrees.o zunzip.o 141 142OBJ1 = pgp.o crypto.o keymgmt.o fileio.o \ 143 mdfile.o more.o armor.o mpilib.o mpiio.o \ 144 genprime.o rsagen.o random.o idea.o passwd.o \ 145 md5.o system.o language.o getopt.o keyadd.o \ 146 config.o keymaint.o charset.o \ 147 randpool.o noise.o 148 149OBJS = $(OBJ1) $(ZIPOBJS) $(RSAOBJS) $(OBJS_EXT) 150CFLAGS = $(CFLAGS) -I$(RSAINCDIR) 151 152$(PROJ): $(OBJS) 153 $(LD) -o $(PROJ) $(OBJS) $(LDFLAGS) $(LIBS_EXT) $(RSALIBS) 154 155# Commodore Amiga Running SVR4 2.1p2a with GCC 2.6.0 LER 156amix-68k-gcc: 157 $(MAKE) all CC=gcc LD=gcc \ 158 CFLAGS="$(RSAINCDIR) -O2 -DHIGHFIRST -DUNIX \ 159 -DPORTABLE -DIDEA32" 160 161# Atari-version with gcc 2.5.8 162atari: 163 $(MAKE) all CC=gcc LD=gcc PROJ=pgp.ttp \ 164 CFLAGS="$(RSAINCDIR) $(USEMPILIB) -O2 -DATARI -DHIGHFIRST -DPORTABLE \ 165 -DUNIT32 -DIDEA32" 166 167linux: 168 $(MAKE) all CC=gcc LD=gcc OBJS_EXT="_80386.o _zmatch.o" \ 169 CFLAGS="$(RSAINCDIR) -pipe -O6 -g3 -DUNIX -DLINUX -DIDEA32 -DASM -DSTRONGPRIMES" 170 171linux-aout: 172 $(MAKE) all CC="gcc -b i486-linuxaout" LD="gcc -b i486-linuxaout" OBJS_EXT="_80386.o _zmatch.o" \ 173 CFLAGS="$(RSAINCDIR) -pipe -O6 -g3 -DUNIX -DLINUX -DIDEA32 -DASM" 174 175linux-68k: 176 $(MAKE) all CC=gcc LD=gcc \ 177 CFLAGS="$(RSAINCDIR) -O2 -DHIGHFIRST -DUNIX -DPORTABLE -DIDEA32" 178 179freebsd-i386: 180 $(MAKE) all LD="$(CC) -s" OBJS_EXT="_80386.o _zmatch.o" \ 181 CFLAGS="$(RSAINCDIR) $(OS_CFLAGS) -DUNIX -DIDEA32 -DASM \ 182 -DMAX_NAMELEN=255" 183 184freebsd-alpha: 185 $(MAKE) all LD="$(CC) -s" \ 186 CFLAGS="$(RSAINCDIR) $(OS_CFLAGS) -DPORTABLE -DUNIX -DIDEA32 \ 187 -DMAX_NAMELEN=255" 188 189freebsd-sparc64: 190 $(MAKE) all LD="$(CC) -s" \ 191 CFLAGS="$(RSAINCDIR) $(OS_CFLAGS) -DPORTABLE -DUNIX -DIDEA32 \ 192 -DHIGHFIRST -DMERRITT -DMAX_NAMELEN=255" 193 194freebsd-ia64: 195 $(MAKE) all LD="$(CC) -s" \ 196 CFLAGS="$(RSAINCDIR) $(OS_CFLAGS) -DPORTABLE -DUNIX -DIDEA32 \ 197 -DMAX_NAMELEN=255" 198freebsd-amd64: 199 $(MAKE) all LD="$(CC) -s" \ 200 CFLAGS="$(RSAINCDIR) $(OS_CFLAGS) -DPORTABLE -DUNIX -DIDEA32 \ 201 -DMAX_NAMELEN=255" 202freebsd-powerpc: 203 $(MAKE) all LD="$(CC) -s" \ 204 CFLAGS="$(RSAINCDIR) $(OS_CFLAGS) -DPORTABLE -DUNIX -DIDEA32 \ 205 -DMAX_NAMELEN=255" 206freebsd-armv6: 207 $(MAKE) all LD="$(CC) -s" \ 208 CFLAGS="$(RSAINCDIR) $(OS_CFLAGS) -DPORTABLE -DUNIX -DIDEA32 \ 209 -DMAX_NAMELEN=255" 210freebsd-armv7: 211 $(MAKE) all LD="$(CC) -s" \ 212 CFLAGS="$(RSAINCDIR) $(OS_CFLAGS) -DPORTABLE -DUNIX -DIDEA32 \ 213 -DMAX_NAMELEN=255" 214freebsd-mips: 215 $(MAKE) all LD="$(CC) -s" \ 216 CFLAGS="$(RSAINCDIR) $(OS_CFLAGS) -DPORTABLE -DUNIX -DIDEA32 \ 217 -DMAX_NAMELEN=255 -DMPORTABLE" 218freebsd-mips64: 219 $(MAKE) all LD="$(CC) -s" \ 220 CFLAGS="$(RSAINCDIR) $(OS_CFLAGS) -DPORTABLE -DUNIX -DIDEA32 \ 221 -DMAX_NAMELEN=255 -DMPORTABLE" 222freebsd-aarch64: 223 $(MAKE) all LD="$(CC) -s" \ 224 CFLAGS="$(RSAINCDIR) $(OS_CFLAGS) -DPORTABLE -DUNIX -DIDEA32 \ 225 -DMAX_NAMELEN=255" 226freebsd-powerpc64: 227 $(MAKE) all LD="$(CC) -s" \ 228 CFLAGS="$(RSAINCDIR) $(OS_CFLAGS) -DPORTABLE -DUNIX -DIDEA32 \ 229 -DMAX_NAMELEN=255" 230 231386bsd: 232 $(MAKE) all CC=gcc LD=gcc OBJS_EXT="_80386.o _zmatch.o" \ 233 CFLAGS="$(RSAINCDIR) -O -DUNIX -DIDEA32 -DASM -DMAX_NAMELEN=255" 234 235netbsd: 236 $(MAKE) all CC=gcc LD=gcc OBJS_EXT="_80386.o _zmatch.o" \ 237 CFLAGS="$(RSAINCDIR) -O -DUNIX -DIDEA32 -DASM -DMAX_NAMELEN=255" 238 239netbsd_68k: 240 $(MAKE) all CC=gcc LD=gcc OBJS_EXT="mc68020.o" \ 241 CFLAGS="$(RSAINCDIR) -O -DUNIX -DHIGHFIRST -DIDEA32 -DMAX_NAMELEN=255" 242 243# Sun 3 with gcc 244# change -traditional-cpp to -traditional for gcc < 2.0 245sun3gcc: 246 $(MAKE) all CC=gcc LD=gcc OBJS_EXT=memmove.o \ 247 CFLAGS="$(RSAINCDIR) -O -traditional-cpp -DUNIX -DHIGHFIRST \ 248 -DIDEA32 -DPORTABLE" 249 250sun3asm: 251 $(MAKE) all CC=gcc LD=gcc OBJS_EXT="mc68020.o memmove.o" \ 252 CFLAGS="$(RSAINCDIR) -O -traditional-cpp -DUNIX -DHIGHFIRST -DIDEA32" 253 254# Sun 3 with standard cc: compile with unproto 255sun3cc: unproto/cpp 256 $(MAKE) all CC=cc LD=cc OBJS_EXT=memmove.o \ 257 CFLAGS="$(RSAINCDIR) -Qpath unproto -O -DUNIX -DHIGHFIRST \ 258 -DIDEA32 -DPORTABLE" 259 260# Sun 4 SPARC with gcc (tested with gcc 1.39 and newer, sparc.s can not be 261# used with older versions of gcc) 262# change -traditional-cpp to -traditional for gcc < 2.0 263sun4gcc: 264 $(MAKE) all CC=gcc LD=gcc OBJS_EXT="sparc.o memmove.o" \ 265 CFLAGS="$(RSAINCDIR) -O -traditional-cpp -DUNIX -DHIGHFIRST -DIDEA32" 266 267# Sun 4 SPARC with standard cc: compile with unproto 268sun4cc: unproto/cpp 269 $(MAKE) all CC=cc LD=cc OBJS_EXT="sparc.o memmove.o" \ 270 CFLAGS="$(RSAINCDIR) -Qpath unproto -Dconst= -O -DUNIX \ 271 -DHIGHFIRST -DIDEA32" 272 273# Sun 4 using SunPro C compiler 274sun4acc: 275 $(MAKE) all CC=acc LD=acc CPP="cc -E" OBJS_EXT="sparc.o memmove.o" \ 276 CFLAGS="-w $(RSAINCDIR) -xO4 -DUNIX -DHIGHFIRST -DIDEA32" \ 277 278# Sun 4 running Sunos5 (Solaris) using gcc 279sun4sunos5gcc: 280 $(MAKE) all CC=gcc LD=gcc OBJS_EXT=sparc.o \ 281 CFLAGS="$(RSAINCDIR) -O -traditional-cpp -DSOLARIS -DUNIX -DHIGHFIRST \ 282 -DIDEA32" ASMDEF=-DSYSV 283 284# Sun 4 running SunOs 5 (Solaris) using SunPro C compiler 285sun4sunos5acc: 286 $(MAKE) all CC=cc LD=cc \ 287 CFLAGS="-w $(RSAINCDIR) -xO2 -DSOLARIS -DUNIX -DHIGHFIRST -DIDEA32 \ 288 -DPORTABLE" 289 290sun386i: 291 $(MAKE) all CC=gcc LD=gcc OBJS_EXT="_80386.o memmove.o" \ 292 CFLAGS="$(RSAINCDIR) -I. -O -DUNIX -DIDEA32 -DNOTERMIO" \ 293 ASMDEF=-DSYSV 294 295sunspc: 296 $(MAKE) all CC="ccspc -B/1.8.6/sun4 -ansi -w -I/usr/include" \ 297 CFLAGS="$(RSAINCDIR) -O -DUNIX -DIDEA32 -DHIGHFIRST -DUNIT32 \ 298 -DMERRITT" OBJS_EXT=sparc.o 299 300# x86 running SunOS 5 (Solaris)... 301solx86gcc: 302 $(MAKE) all CC=gcc LD=gcc \ 303 CFLAGS="$(RSAINCDIR) -O -traditional-cpp -DSOLARIS -DUNIX -DIDEA32 \ 304 -DPORTABLE" 305 306# Sony newsos v3 for m68k, with gcc 307# change -traditional-cpp to -traditional for gcc < 2.0 308newsgcc: 309 $(MAKE) all CC=gcc LD=gcc \ 310 CFLAGS="$(RSAINCDIR) -O -I. -traditional-cpp -DNOTERMIO -D_BSD \ 311 -DUNIX -DHIGHFIRST -DIDEA32 -DPORTABLE" 312 313# with asm 314newsasm: 315 $(MAKE) all CC=gcc LD=gcc OBJS_EXT=mc68020.s CFLAGS="$(RSAINCDIR) -O \ 316 -I. -traditional-cpp -DNOTERMIO -D_BSD -DUNIX -DHIGHFIRST -DIDEA32" 317 318qnx4: 319 $(MAKE) all \ 320 CFLAGS="$(RSAINCDIR) -3 -O -I. -b -DNO_PARAM_H -DUNIX -DIDEA32 \ 321 -DPORTABLE -DMPORTABLE $(BYTEORDER) -DMAX_NAMELEN=255" 322 323encore: 324 $(MAKE) all CC=gcc LD=gcc CFLAGS="$(RSAINCDIR) -O -DUNIX -DPORTABLE \ 325 -DMPORTABLE -DUSE_NBIO -DIDEA32 -DUPTON -DHIGHFIRST" 326 327sysv: 328 $(MAKE) all CPP=/lib/cpp \ 329 CFLAGS="$(RSAINCDIR) -O -DUNIX -DPORTABLE -DUSE_NBIO $(BYTEORDER)" 330 331sysvgcc: 332 $(MAKE) all CC=gcc LD=gcc CPP=/lib/cpp \ 333 CFLAGS="$(RSAINCDIR) -O -DUNIX -DPORTABLE -DUSE_NBIO $(BYTEORDER)" 334 335# Optimized version with 80386.S 336sysv_386: 337 $(MAKE) all CPP="/lib/cpp -DSYSV" OBJS_EXT="_80386.o _zmatch.o" \ 338 CFLAGS="$(RSAINCDIR) -O -DUNIX -DIDEA32 -DUSE_NBIO -DASM" 339 340# gcc tested on ESIX 4.0.3a with gcc 2.5.8 341sysv_386_gcc: 342 $(MAKE) all CC=gcc LD=gcc CPP="/lib/cpp -DSYSV" \ 343 OBJS_EXT="_80386.o _zmatch.o" \ 344 CFLAGS="$(RSAINCDIR) -O -DUNIX -DIDEA32 -DUSE_NBIO -DASM" 345 346# Interactive Unix SVR3/386 version 3.2 with gcc 347isc: 348 $(MAKE) all CC=gcc LD=gcc LDFLAGS="-lcposix -lrpc" OBJS_EXT=memmove.o \ 349 CFLAGS="$(RSAINCDIR) -O -DUNIX -DIDEA32 -DUSE_NBIO -DPORTABLE \ 350 -DNO_ITIMER" 351 352isc_asm: 353 $(MAKE) all CC=gcc LD=gcc OBJS_EXT="_80386.o memmove.o" ASMDEF=-DSYSV \ 354 CFLAGS="$(RSAINCDIR) -O -DUNIX -DIDEA32 -DUSE_NBIO -DNO_ITIMER" \ 355 LDFLAGS="-lcposix -lrpc" 356 357mach_386: 358 $(MAKE) all CC=gcc LD=gcc CPP=/lib/cpp OBJS_EXT=_80386.o \ 359 CFLAGS="$(RSAINCDIR) -O -I. -DMACH -DUNIX -DIDEA32 -DNOTERMIO" 360 361machten: 362 $(MAKE) all CC=gcc LD=gcc CPP=/lib/cpp OBJS_EXT=mc68020.o \ 363 CFLAGS="$(RSAINCDIR) -O -I. -DMACH -DUNIX -DHIGHFIRST \ 364 -DIDEA32 -DNOTERMIO" 365 366sco-2.0: 367 $(MAKE) all CC=gcc LD=gcc CPP=/usr/lib/xcpp OBJS_EXT=_80386.o \ 368 ASMDEF=-DSYSV CFLAGS="$(RSAINCDIR) -Dsco -O -DUNIX -DIDEA32 -DUSE_NBIO" 369 370sco-3.0: 371 $(MAKE) all CC=cc LD=cc CPP=/lib/cpp OBJS_EXT=_80386.o \ 372 ASMDEF=-DSYSV CFLAGS="$(RSAINCDIR) -Dsco -O -DUNIX -DIDEA32 \ 373 -DUSE_NBIO" LDFLAGS="-lsocket" 374 375sco-3.0-gcc: 376 $(MAKE) all CC=gcc LD=gcc CPP=/usr/lib/xcpp OBJS_EXT=_80386.o \ 377 ASMDEF=-DSYSV CFLAGS="-traditional-cpp $(RSAINCDIR) -Dsco -O \ 378 -DUNIX -DIDEA32 -DUSE_NBIO" LIBS_EXT=-lsocket 379 380sco386cc: 381 $(MAKE) all CPP=/usr/lib/xcpp OBJS_EXT=_80386.o ASMDEF=-DSYSV \ 382 CFLAGS="$(RSAINCDIR) -Dsco -O -DUNIX -DIDEA32 -DUSE_NBIO -I." \ 383 LDFLAGS="-lsocket" 384 385# Siemens RM 400 running Sinix 5.42, using the Siemens compiler 386sinix: 387 $(MAKE) all CPP=/lib/cpp \ 388 CFLAGS="$(RSAINCDIR) -O -DUNIX -DPORTABLE -DUSE_NBIO -DHIGHFIRST" 389 390# Data General Unix using gcc 391dgux: 392 $(MAKE) all CPP=/lib/cpp CC=gcc LD=gcc\ 393 CFLAGS="$(RSAINCDIR) -O -DUNIX -DPORTABLE -DUSE_NBIO \ 394 -DIDEA32 -DHIGHFIRST" 395 396x286: xenix286 397xenix286: 398 $(MAKE) all CC="sh ccc.x286 -M2l" LD="cc -M2l" ASM="cc -M2l" \ 399 OBJS_EXT=8086.o LDFLAGS="-F 3000" \ 400 CFLAGS="$(RSAINCDIR) -LARGE -Ot -DUNIX -DNOPROTO -DSMALL_MEM \ 401 -DDYN_ALLOC -DUSE_NBIO -DSVR2" 402 403xenix386: 404 $(MAKE) all CPP=/lib/cpp OBJS_EXT="_80386.o _zmatch.o" \ 405 CFLAGS="$(RSAINCDIR) -O -DUNIX -DSVR2 -DIDEA32 -DUSE_NBIO -DASM" 406 4073b1: 408 $(MAKE) all CC=gcc LD=gcc CPP=/usr/lib/cpp \ 409 CFLAGS="$(RSAINCDIR) -O -I. -DUNIX -DSVR2 -DPORTABLE -DUSE_NBIO \ 410 -DHIGHFIRST -DMAX_NAMELEN=14" 411 4123b1_asm: 413 $(MAKE) all CC=gcc LD=gcc CPP=/usr/lib/cpp OBJS_EXT=3b168010.o \ 414 CFLAGS="$(RSAINCDIR) -O -I. -DUNIX -DSVR2 -DUSE_NBIO -DHIGHFIRST \ 415 -DMAX_NAMELEN=14" 416 417# Silicon Graphics Iris IRIX 418sgigcc: 419 $(MAKE) all CC=gcc LD=gcc CPP=/usr/lib/cpp \ 420 CFLAGS="$(RSAINCDIR) -O -DUNIX -DPORTABLE -DUSE_NBIO -DHIGHFIRST" 421 422# SGI with assembler modules 423sgigcc_asm: 424 $(MAKE) all CC=gcc LD=gcc CPP=/usr/lib/cpp OBJS_EXT="r3000.o r3kd.o" \ 425 CFLAGS="$(RSAINCDIR) -O -DUNIX -DUSE_NBIO -DHIGHFIRST" 426 427irix: 428 $(MAKE) all CC=cc LD=cc \ 429 CFLAGS="$(RSAINCDIR) -O -DUNIX -DPORTABLE -DUSE_NBIO -DHIGHFIRST -acpp" 430 431irix_asm: 432 $(MAKE) all CC=cc LD=cc OBJS_EXT="r3000.o r3kd.o" \ 433 CFLAGS="$(RSAINCDIR) -O -g -DUNIX -DUSE_NBIO -DHIGHFIRST -acpp" 434 435# Users of PGP versions < 2.5 will expect a target 'hpux' to build for 436# a snake (HP Series 700 RISC machine). Don't disappoint them. 437hpux: hpux-pa-ansi 438 439# HP series 700 pa-risc running HP/UX with HP's ANSI cc 440hpux-pa-ansi: 441 $(MAKE) all CPP=/usr/lib/cpp \ 442 CFLAGS="$(RSAINCDIR) -Aa +O3 +Obb5000 -D_HPUX_SOURCE -DHIGHFIRST \ 443 -DUNIX -DPORTABLE -DUSE_SELECT -DIDEA32 -DMERRITT" 444 445# HP series 700/800 pa-risc running HP/UX 9.* with cc 446hpux9-pa-ansi: 447 $(MAKE) all CPP=/lib/cpp \ 448 CFLAGS="$(RSAINCDIR) -Ae -D_HPUX_SOURCE +O3 +Onolimit -DHIGHFIRST \ 449 -DUNIX -DPORTABLE -DUSE_SELECT -DIDEA32 -DMERRITT" 450 451 452# HP series 700 pa-risc running HP/UX with gcc 453hpux-pa-gcc: 454 $(MAKE) all CC=gcc LD=gcc \ 455 CFLAGS="$(RSAINCDIR) -O2 -D_HPUX_SOURCE -DHIGHFIRST -DUNIX \ 456 -DPORTABLE -DUSE_SELECT -DIDEA32 -DMERRITT" 457 458# HP series 700 pa-risc running HP/UX with HP's standard cc: use unproto 459hpux-pa: unproto/cpp 460 $(MAKE) all \ 461 CFLAGS="-tp,./unproto/cpp $(RSAINCDIR) -DHIGHFIRST \ 462 -DUNIX -DPORTABLE -DUSE_SELECT -DIDEA32 -DMERRITT" 463 464# HP series 300 mc68k running HP/UX with HP's ANSI cc 465hpux-68k-ansi: 466 $(MAKE) all \ 467 CFLAGS="$(RSAINCDIR) -Aa +O2 -D_HPUX_SOURCE -DHIGHFIRST -DUNIX \ 468 -DPORTABLE -DUSE_SELECT -DIDEA32" 469 470# HP series 300 mc68k running HP/UX with gcc 471hpux-68k-gcc: 472 $(MAKE) all CC=gcc LD=gcc \ 473 CFLAGS="$(RSAINCDIR) -O2 -D_HPUX_SOURCE -DHIGHFIRST -DUNIX \ 474 -DPORTABLE -DUSE_SELECT -DIDEA32" 475 476# HP series 300 mc68k running HP/UX with HP's standard cc: use unproto 477hpux-68k: unproto/cpp 478 $(MAKE) all \ 479 CFLAGS="-tp,./unproto/cpp $(RSAINCDIR) -DHIGHFIRST \ 480 -DUNIX -DPORTABLE -DUSE_SELECT -DIDEA32" 481 482# VAX Ultrix 4.2 BSD rev. 96, system #3 with gcc 483vax-ultrix: 484 $(MAKE) all CC=gcc LD=gcc \ 485 CFLAGS="$(RSAINCDIR) -O -DUNIX -DPORTABLE -DUSE_SELECT \ 486 -DSIG_IGN=1 -DSIG_DFL=0" 487 488# DEC Ultrix 4.2 BSD with gcc with MIPSco processors 489# 490# To use dec's cc on mips you should 491# uncomment the next two lines because you can't compile r3000.c 492#r3000.o: r3000.s 493# $(AS) -o $@ r3000.s 494# 495#mips-ultrix: 496# $(MAKE) all CC=gcc LD=gcc OBJS_EXT="r3kd.o r3000.o"\ 497# CFLAGS="$(RSAINCDIR) $(DBG) -DUNIX -DUSE_SELECT -DIDEA32" 498 499mips-ultrix: 500 $(MAKE) all CC=gcc LD=gcc \ 501 CFLAGS="$(RSAINCDIR) $(DBG) -DUNIX -DPORTABLE \ 502 -DMPORTABLE -DUSE_SELECT -DIDEA32" 503 504# Mips R3230 running RISC/os 5.01 505riscos501: 506 $(MAKE) all CC="cc -systype svr4" LD="cc -systype svr4" \ 507 CFLAGS="$(RSAINCDIR) -DPORTABLE -DUNIX -DHIGHFIRST -DIDEA32 \ 508 -DMPORTABLE -DUSE_SELECT -DMERRITT" 509 510convexos: 511 $(MAKE) all CC=gcc LD=gcc \ 512 CFLAGS="$(RSAINCDIR) -O -DHIGHFIRST -DUNIX \ 513 -DPORTABLE -DIDEA32" 514 515# RS6000 running AIX 516rs6000: 517 $(MAKE) all CFLAGS="$(RSAINCDIR) -O -DUNIX -DNOTERMIO -DPORTABLE \ 518 -DMODERN -DHIGHFIRST -DIDEA32" 519 520# AIX/370 521aix370: 522 $(MAKE) all CPP=/lib/cpp \ 523 CFLAGS="$(RSAINCDIR) -O -DUNIX -DIDEA32 -DUSE_NBIO -DSYSV -DHIGHFIRST \ 524 -DPORTABLE" 525 526# AIX/386 v.1.3 527aix386: 528 $(MAKE) all CPP="/lib/cpp -DSYSV" \ 529 CFLAGS="$(RSAINCDIR) -O -DUNIX -DIDEA32 -DUSE_NBIO -DSYSV -DPORTABLE" 530 531next: 532 $(MAKE) all \ 533 CFLAGS="$(RSAINCDIR) -O -arch m68k -DNEXT -DUNIX -DHIGHFIRST \ 534 -DMACH -DPORTABLE -DNOTERMIO" 535 536next-intel: 537 $(MAKE) all OBJS_EXT=_80386.o \ 538 CFLAGS="-O -DNEXT -DUNIX -DMACH -DNOTERMIO" 539 540next486: 541 $(MAKE) all \ 542 CFLAGS="$(RSAINCDIR) -O -arch i386 -DNEXT -DUNIX -DMACH -DPORTABLE \ 543 -DIDEA32 -DNOTERMIO" 544 545nextHP: 546 $(MAKE) all \ 547 CFLAGS="$(RSAINCDIR) -O -arch hppa -DNEXT -DUNIX -DMACH -DPORTABLE \ 548 -DNOTERMIO -DHIGHFIRST" 549 550bsdgcc: 551 $(MAKE) all CC=gcc LD=gcc \ 552 CFLAGS="$(RSAINCDIR) -O -I. -DNOTERMIO -D_BSD -DUNIX -DPORTABLE \ 553 -DUSE_NBIO $(BYTEORDER)" 554 555bsd: 556 $(MAKE) all "LD=cc -s" \ 557 CFLAGS="$(RSAINCDIR) -O -I. -B/lib/ -DNOTERMIO -D_BSD -DUNIX \ 558 -DPORTABLE -DUSE_NBIO $(BYTEORDER)" 559 560sequent: unproto/cpp 561 $(MAKE) all "LD=cc -s -j" CPP=/usr/lib/cpp \ 562 CFLAGS="$(RSAINCDIR) -j -O -I. -Yp,unproto -DUNIX -DNOTERMIO \ 563 -DPORTABLE -DUSE_NBIO $(BYTEORDER)" 564 565# Apollo running DomainOS Release 10.4 (bsd4.3) 566apollo: 567 $(MAKE) all CC=cc LD=cc \ 568 CFLAGS="$(RSAINCDIR) -O -I. -DHIGHFIRST -DBSD -DUNIX -DPORTABLE \ 569 -DUSE_SELECT" 570 571# Apollo running DomainOS Release 10.4 (bsd4.3) and gcc 2.6.0 572apollo-gcc: 573 $(MAKE) all CC=gcc LD=gcc \ 574 CFLAGS="$(RSAINCDIR) -O -I. -DHIGHFIRST -DBSD -DUNIX -DPORTABLE \ 575 -DUSE_SELECT" 576 577# RT running bsd with gcc 578rt_aos4: 579 $(MAKE) all CC=gcc LD=gcc \ 580 CFLAGS="$(RSAINCDIR) -O -DUNIX -D_BSD -DMAX_NAMELEN=255 -DPORTABLE \ 581 -DHIGHFIRST -DNOTERMIO -I." 582 583# Vax running bsd with gcc 584vax_bsd43: 585 $(MAKE) all CC=gcc LD=gcc \ 586 CFLAGS="$(RSAINCDIR) -O -I. -DUNIX -D_BSD -DMAX_NAMELEN=255 \ 587 -DNOTERMIO -DPORTABLE" 588 589# The Open Software Foundation's OSF/1 590osf: 591 $(MAKE) all \ 592 CFLAGS="$(RSAINCDIR) $(DBG) -I. -D_BSD -DUNIX -DNOTERMIO \ 593 -DPORTABLE $(BYTEORDER)" 594 595# A/UX 3.0 using unproto (mine is invoked as a cpp using the CFLAGS shown 596# I placed the cpp in a subdirectory of /src/pgp called unproto 597aux: unproto/cpp 598 $(MAKE) all CC=cc OBJS_EXT=memmove.o \ 599 LDFLAGS="-lposix -lbsd" \ 600 CFLAGS="$(RSAINCDIR) -B unproto/ -tp -DSVR2 \ 601 -DHIGHFIRST -DUNIX -DPORTABLE -DUSE_SELECT -DUPTON" 602aux-gcc: 603 $(MAKE) all CC=gcc LD=gcc OBJS_EXT=memmove.o \ 604 LDFLAGS="-lposix -lbsd" \ 605 CFLAGS="$(RSAINCDIR) -O2 -DSVR2 -DHIGHFIRST -DUNIX -DPORTABLE \ 606 -DUSE_SELECT -DUPTON" 607 608# Novell UnixWare 2.0 with gcc 609unixware: 610 $(MAKE) all CC=gcc LD=gcc LDFLAGS="" \ 611 CFLAGS="$(RSAINCDIR) -O2 -m486 -DUNIX -DIDEA32 -DUSE_NBIO -DPORTABLE" 612 613# Optimized version with 80386.S for OS/2 2.x. 614# Requires emx 0.8h (i.e. gcc 2.5.7 or later) and GNU make 3.71 for OS/2 615os2: 616 $(MAKE) all PROJ=pgp.exe RM=del OBJS_EXT="_80386.o _zmatch.o" \ 617 CC="gcc -Zomf" CFLAGS="$(RSAINCDIR) -O -DOS2 -DASM -DIDEA32" \ 618 ASM="gcc -Zomf -c" LD="gcc -Zomf -Zsys" LDFLAGS="-s pgp.def" 619 620 621# DJGPP, DJ Delorie's port of GNU C to MS-DOS (thanks DJ!). 622# (Tested with DJGPP 2.0 and GNU make.) 623djgpp: 624 $(MAKE) all 'OBJS_EXT=_80386.o _zmatch.o' \ 625 CC=gcc 'CFLAGS=$(RSAINCDIR) -O3 -DASM -DIDEA32 -DSTRONGPRIMES' \ 626 LD=gcc LIBS_EXT=-lpc RM=del 627 strip pgp 628# coff2exe pgp 629 copy /b e:\djgpp\bin\cwsdstub.exe + pgp pgp.exe 630 upx --best pgp.exe 631# djp pgp.exe 632 633# 634# unproto for K&R compilers 635# 636# unproto was posted on comp.sources.misc: v23i012 v23i013 637# 638# unpack the unproto package in subdirectory unproto 639# 640 641# unproto: needs preprocessed input 642unproto/unproto:: 643 cd unproto && $(MAKE) PROG=unproto PIPE= 644 645# cpp: pipes through /lib/cpp 646unproto/cpp:: 647 cd unproto && $(MAKE) 648 649clean: 650 -$(RM) *~ *.o $(PROJ) core a.out tags *.err 651 652tags: 653 ctags *.c *.h 654 655 656## Dependencies ## 657armor.o : armor.c mpilib.h usuals.h platform.h fileio.h mpiio.h language.h \ 658 pgp.h more.h armor.h crypto.h charset.h 659charset.o : charset.c usuals.h language.h charset.h system.h 660config.o : config.c usuals.h fileio.h pgp.h more.h armor.h config.h \ 661 charset.h 662crypto.o : crypto.c mpilib.h usuals.h platform.h mpiio.h random.h idea.h \ 663 crypto.h keymgmt.h keymaint.h mdfile.h md5.h fileio.h charset.h language.h \ 664 pgp.h more.h armor.h exitpgp.h zipup.h rsaglue.h 665fileio.o : fileio.c random.h idea.h usuals.h mpilib.h platform.h mpiio.h \ 666 fileio.h language.h pgp.h more.h armor.h exitpgp.h charset.h system.h 667genprime.o : genprime.c mpilib.h usuals.h platform.h genprime.h random.h \ 668 idea.h 669getopt.o : getopt.c getopt.h 670idea.o : idea.c idea.h usuals.h 671keyadd.o : keyadd.c mpilib.h usuals.h platform.h crypto.h fileio.h \ 672 keymgmt.h charset.h language.h pgp.h more.h armor.h exitpgp.h keyadd.h \ 673 keymaint.h 674keymaint.o : keymaint.c mpilib.h usuals.h platform.h random.h idea.h \ 675 crypto.h fileio.h keymgmt.h keymaint.h mpiio.h charset.h language.h pgp.h \ 676 more.h armor.h 677keymgmt.o : keymgmt.c system.h mpilib.h usuals.h platform.h idea.h random.h \ 678 crypto.h fileio.h keymgmt.h rsagen.h mpiio.h language.h pgp.h more.h \ 679 armor.h md5.h charset.h keymaint.h 680language.o : language.c usuals.h fileio.h language.h pgp.h more.h armor.h \ 681 charset.h 682md5.o : md5.c md5.h 683mdfile.o : mdfile.c mpilib.h usuals.h platform.h mdfile.h md5.h fileio.h \ 684 language.h pgp.h more.h armor.h 685more.o : more.c system.h mpilib.h usuals.h platform.h language.h fileio.h \ 686 pgp.h more.h armor.h charset.h 687mpiio.o : mpiio.c mpilib.h # usuals.h platform.h mpiio.h pgp.h more.h armor.h 688mpilib.o : mpilib.c mpilib.h # usuals.h platform.h 689passwd.o : passwd.c random.h idea.h usuals.h md5.h language.h pgp.h more.h \ 690 armor.h 691pgp.o : pgp.c system.h mpilib.h usuals.h platform.h random.h idea.h crypto.h \ 692 fileio.h keymgmt.h language.h pgp.h more.h armor.h exitpgp.h charset.h \ 693 getopt.h config.h keymaint.h keyadd.h rsaglue.h 694random.o : random.c system.h random.h idea.h usuals.h language.h 695rsagen.o : rsagen.c mpilib.h usuals.h platform.h genprime.h rsagen.h \ 696 random.h idea.h rsaglue.h 697rsaglue.o : rsaglue.c mpilib.h mpiio.h pgp.h rsaglue.h 698system.o : system.c exitpgp.h system.h charset.h mpilib.h 699zbits.o : zbits.c zip.h ztailor.h ziperr.h 700zdeflate.o : zdeflate.c zunzip.h usuals.h system.h zip.h ztailor.h ziperr.h 701zfile_io.o : zfile_io.c zunzip.h usuals.h system.h 702zglobals.o : zglobals.c zip.h ztailor.h ziperr.h 703zinflate.o : zinflate.c zunzip.h usuals.h system.h exitpgp.h 704zip.o : zip.c zip.h usuals.h fileio.h language.h pgp.h more.h armor.h exitpgp.h 705zipup.o : zipup.c zip.h ztailor.h ziperr.h zrevisio.h 706ztrees.o : ztrees.c zip.h ztailor.h ziperr.h 707zunzip.o : zunzip.c zunzip.h usuals.h system.h language.h 708r3000.o : r3000.c mpilib.h usuals.h platform.h lmul.h 709