# only need to compile netscript with a single command, so this isn't going to
# look typical.
CC=gcc
MAKE=make
ECHO=echo
LN=ln
RM=rm
CHMOD=chmod
# odd isn't it? this will be more multi-platformed, just one file anyways.
INSTALL=cp
BINDIR=/usr/bin

all:
	@$(ECHO) "Usage: make <platform>, or <function>"
	@$(ECHO) "* where <platform> is: linux, bsd, bsdi, irix, sunos, generic, or bare."
	@$(ECHO) "* where <platform> is: glinux, gbsd, gbsdi, girix, or gsunos. (gtk/gui)"
	@$(ECHO) "* where <function> is: install, clean, or cleanall."

# for the ./automake support. (using uname)
Linux: linux
FreeBSD: bsd
NetBSD: bsd
OpenBSD: bsd
BSD/OS: bsdi
IRIX: irix
SunOS: sunos
# for any confusion.
Solaris: sunos
solaris: sunos
GLinux: glinux
GFreeBSD: gbsd
GNetBSD: gbsd
GOpenBSD: gbsd
GBSD/OS: gbsdi
GIRIX: girix
GSunOS: gsunos
GSolaris: gsunos
Gsolaris: gsunos
# for auto-gui link.
Ginstall: install ginstall
# the make functions, mostly minor differences.
linux:
	@$(ECHO) "* Compiling linux-variant style netscript..."
	@$(CC) netscript.c -o netscript -rdynamic -lc -ldl -DARPA -DLINUX_T

glinux:
	@$(ECHO) "* Compiling GTK-linux-variant style netscript..."
	@$(CC) netscript.c -o netscript -rdynamic -lc -ldl -DARPA -DLINUX_T -DGTK `gtk-config --cflags --libs gthread`

bsd:
	@$(ECHO) "* Compiling bsd-variant style netscript..."
	@$(CC) netscript.c -o netscript -rdynamic -lc -DARPA -DBSD_T

gbsd:
	@$(ECHO) "* Compiling GTK-bsd-variant style netscript..."
	@$(CC) netscript.c -o netscript -rdynamic -lc -DARPA -DBSD_T -DGTK `gtk-config --cflags --libs gthread`

bsdi:
	@$(ECHO) "* Compiling bsd-variant style netscript..."
	@$(CC) netscript.c -o netscript -rdynamic -lc -ldl -DARPA -DBSD_T

gbsdi:
	@$(ECHO) "* Compiling GTK-bsd-variant style netscript..."
	@$(CC) netscript.c -o netscript -rdynamic -lc -ldl -DARPA -DBSD_T -DGTK `gtk-config --cflags --libs gthread`

irix:
	@$(ECHO) "* Compiling irix-variant style netscript..."
	@$(CC) netscript.c -o netscript -lc -DARPA -DIRIX_T

girix:
	@$(ECHO) "* Compiling GTK-irix-variant style netscript..."
	@$(CC) netscript.c -o netscript -lc -DARPA -DIRIX_T -DGTK `gtk-config --cflags --libs gthread`

sunos:
	@$(ECHO) "* Compiling sunos-variant style netscript..."
	@$(CC) netscript.c -o netscript -lc -ldl -lnsl -lsocket -DARPA -DSUNOS_T

gsunos:
	@$(ECHO) "* Compiling GTK-sunos-variant style netscript..."
	@$(CC) netscript.c -o netscript -lc -ldl -lnsl -lsocket -DARPA -DSUNOS_T -DGTK `gtk-config --cflags --libs gthread`

generic:
	@$(ECHO) "* Compiling generic style netscript..."
	@$(CC) netscript.c -o netscript -rdynamic -lc -ldl -DARPA

bare:
	@$(ECHO) "* Compiling bare style netscript..."
	@$(CC) netscript.c -o netscript -DDISABLE_MODULES -DDISABLE_SRCIP -DDISABLE_SYSLOG

install:
	@$(ECHO) "* Installing netscript to bin directory, and linking..."
	@$(INSTALL) netscript $(BINDIR)
	@$(CHMOD) 755 $(BINDIR)/netscript
	@$(LN) -sf $(BINDIR)/netscript $(BINDIR)/ns

ginstall:
	@$(ECHO) "* Installing netscript auto-GTK link to bin directory..."
	@$(LN) -sf $(BINDIR)/netscript $(BINDIR)/gnetscript

clean:
	@$(ECHO) "* Cleaning local netscript file(s)..."
	@$(RM) -rf netscript

cleanall:
	@$(ECHO) "* Cleaning global netscript file(s)..."
	@$(RM) -rf netscript $(BINDIR)/netscript $(BINDIR)/ns $(BINDIR)/gnetscript
	@$(RM) -rf /usr/share/man/man1/netscript.1.gz /usr/share/man/man1/gnetscript.1.gz /usr/share/man/man1/ns.1.gz

