123 lines
3.7 KiB
Makefile
123 lines
3.7 KiB
Makefile
|
# 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
|
||
|
|