| # makefile for netcat, based off same ol' "generic makefile". |
| # Usually do "make systype" -- if your systype isn't defined, try "generic" |
| # or something else that most closely matches, see where it goes wrong, fix |
| # it, and MAIL THE DIFFS back to Hobbit. |
| |
| ### PREDEFINES |
| |
| # DEFAULTS, possibly overridden by <systype> recursive call: |
| # pick gcc if you'd rather , and/or do -g instead of -O if debugging |
| # debugging |
| # DFLAGS = -DTEST -DDEBUG |
| CFLAGS = -O |
| XFLAGS = # xtra cflags, set by systype targets |
| XLIBS = # xtra libs if necessary? |
| # -Bstatic for sunos, -static for gcc, etc. You want this, trust me. |
| STATIC = |
| CC = cc $(CFLAGS) |
| LD = $(CC) -s # linker; defaults to stripped executables |
| o = o # object extension |
| |
| ALL = nc |
| |
| ### BOGON-CATCHERS |
| |
| bogus: |
| @echo "Usage: make <systype> [options]" |
| |
| ### HARD TARGETS |
| |
| nc: netcat.c |
| $(LD) $(DFLAGS) $(XFLAGS) $(STATIC) -o nc netcat.c $(XLIBS) |
| |
| nc-dos: |
| @echo "DOS?! Maybe someday, but not now" |
| |
| ### SYSTYPES -- in the same order as in generic.h, please |
| |
| # designed for msc and nmake, but easy to change for your compiler. |
| # Recursive make may fail if you're short on memory -- u-fix! |
| # Note special hard-target and "quotes" instead of 'quotes' ... |
| dos: |
| $(MAKE) -e $(ALL)-dos $(MFLAGS) CC="cl /nologo" XLIBS= \ |
| XFLAGS="/AS -D__MSDOS__ -DMSDOS" o=obj |
| |
| ultrix: |
| make -e $(ALL) $(MFLAGS) XFLAGS='-DULTRIX' |
| |
| # you may need XLIBS='-lresolv -l44bsd' if you have BIND 4.9.x |
| sunos: |
| make -e $(ALL) $(MFLAGS) XFLAGS='-DSUNOS' STATIC=-Bstatic \ |
| XLIBS='-lresolv' |
| |
| # Pick this one ahead of "solaris" if you actually have the nonshared |
| # libraries [lib*.a] on your machine. By default, the Sun twits don't ship |
| # or install them, forcing you to use shared libs for any network apps. |
| # Kludged for gcc, which many regard as the only thing available. |
| solaris-static: |
| make -e $(ALL) $(MFLAGS) XFLAGS='-DSYSV=4 -D__svr4__ -DSOLARIS' \ |
| CC=gcc STATIC=-static XLIBS='-lnsl -lsocket -lresolv' |
| |
| # the more usual shared-lib version... |
| solaris: |
| make -e $(ALL) $(MFLAGS) XFLAGS='-DSYSV=4 -D__svr4__ -DSOLARIS' \ |
| CC=gcc STATIC= XLIBS='-lnsl -lsocket -lresolv' |
| |
| aix: |
| make -e $(ALL) $(MFLAGS) XFLAGS='-DAIX' |
| |
| linux: |
| make -e $(ALL) $(MFLAGS) XFLAGS='-DLINUX' STATIC=-static |
| |
| # irix 5.2, dunno 'bout earlier versions. If STATIC='-non_shared' doesn't |
| # work for you, null it out and yell at SGI for their STUPID default |
| # of apparently not installing /usr/lib/nonshared/*. Sheesh. |
| irix: |
| make -e $(ALL) $(MFLAGS) XFLAGS='-DIRIX -DSYSV=4 -D__svr4__' \ |
| STATIC=-non_shared |
| |
| osf: |
| make -e $(ALL) $(MFLAGS) XFLAGS='-DOSF' STATIC=-non_shared |
| |
| # virtually the same as netbsd/bsd44lite/whatever |
| freebsd: |
| make -e $(ALL) $(MFLAGS) XFLAGS='-DFREEBSD' STATIC=-static |
| |
| bsdi: |
| make -e $(ALL) $(MFLAGS) XFLAGS='-DBSDI' STATIC=-Bstatic |
| |
| netbsd: |
| make -e $(ALL) $(MFLAGS) XFLAGS='-DNETBSD' STATIC=-static |
| |
| # finally got to an hpux box, which turns out to be *really* warped. |
| # STATIC here means "linker subprocess gets args '-a archive'" which causes |
| # /lib/libc.a to be searched ahead of '-a shared', or /lib/libc.sl. |
| hpux: |
| make -e $(ALL) $(MFLAGS) XFLAGS='-DHPUX' STATIC="-Wl,-a,archive" |
| |
| # unixware from bmc@telebase.com; apparently no static because of the |
| # same idiotic lack of link libraries |
| unixware: |
| make -e $(ALL) $(MFLAGS) XFLAGS='-DUNIXWARE -DSYSV=4 -D__svr4__' \ |
| STATIC= XLIBS='-L/usr/lib -lnsl -lsocket -lresolv' |
| |
| # from Declan Rieb at sandia, for a/ux 3.1.1 [also suggests using gcc]: |
| aux: |
| make -e $(ALL) $(MFLAGS) XFLAGS='-DAUX' STATIC=-static CC=gcc |
| |
| # Nexstep from mudge: NeXT cc is really old gcc |
| next: |
| make -e $(ALL) $(MFLAGS) XFLAGS='-DNEXT' STATIC=-Bstatic |
| |
| # start with this for a new architecture, and see what breaks. |
| generic: |
| make -e $(ALL) $(MFLAGS) XFLAGS='-DGENERIC' STATIC= |
| |
| # Still at large: dgux dynix ??? |
| |
| ### RANDOM |
| |
| clean: |
| rm -f $(ALL) *.o *.obj |
| |