.SUFFIXES: .java .class .so
VPATH = ../libsrc


# This is intended to be a link to the real Java directory.  E.g. on AIX,
# this is linked to ...../usr/jdk_base and on Solaris to ...../jdk1.1.8.
JAVATOP = ../javatop
JAVACLASSPATH = ./jhelp/lib/jhelp.jar:$(JAVATOP)/lib:$(JAVATOP)/swing/swingall.jar

EXTRA_HPUX_CFLAGS = -Aa -D _HPUX_SOURCE +e

CC = xlc_r

HPCC = cc +z

SUNCC = cc -G

LINUXCC = gcc -DUSE_TERMIO

LINUXLD = ld

CLASS = fwmain

GLUE = cglue

LIB = libglue.so

JAR = trex.jar

HOME =

CCOPTS = -O

OBJS = jc.o \
	local.o \
	../libsrc/enc_io.o \
	../libsrc/cbc_io.o \
	data.o

CLEAN_OBJS = jc.o \
             local.o \
             data.o

#SRCS =	$(GLUE).c \

SRCS = jc.c \
	local.c \
	../libsrc/enc_io.c \
	data.c

LNLIBS =../libsrc/firewall.a \
	../util/gwuser/gwuser.a \
	../libdes/libdes.a

JSRCS = $(CLASS).java \
	Base.java \
	Dir.java \
	PFrame.java \
	Rules.java \
	apache.java \
	aproxy.java \
	aproxyrules.java \
	backup.java \
	backupmenu.java \
	cglue.java \
	configmenu.java \
	edit.java \
	editcomponent.java \
	fwpulse.java \
	fwpulserules.java \
	fwmon.java \
	fwwin.java \
	gwuser.java \
	gwuserconf.java \
	gwusermenu.java \
	legends.java \
	listarchives.java \
	listtar.java \
	login.java \
	mainmenu.java \
	monitor.java \
	monitormenu.java \
	mgwuser.java \
	msyslog.java \
	MyDialog.java \
	MyMenuItem.java \
	padmin.java \
	padminrules1.java \
	padminrules2.java \
	pktinfo.java \
	raproxy.java \
	raproxyrules.java \
	restore.java \
	restoremenu.java \
	rpcproxy.java \
	rpcproxyrules.java \
	smwrap.java \
	smwraprules.java \
	sockd.java \
	sockdrules.java \
	ssmenu.java \
	tarinfo.java \
	times.java \
	tnproxy.java \
	tnproxyrules.java \
	webblock.java \
	webgaterules.java

CLASSES = $(CLASS).class \
	Base.class \
	Dir.class \
	PFrame.class \
	Rules.class \
	apache.class \
	aproxy.class \
	aproxyrules.class \
	backup.class \
	backupmenu.class \
	cglue.class \
	configmenu.class \
	edit.class \
	editcomponent.class \
	fwpulse.class \
	fwpulserules.class \
	fwmon.class \
	fwwin.class \
	gwuser.class \
	gwuserconf.class \
	gwusermenu.class \
	legends.class \
	listarchives.class \
	listtar.class \
	login.class \
	mainmenu.class \
	monitor.class \
	monitormenu.class \
	mgwuser.class \
	msyslog.class \
	MyDialog.class \
	MyMenuItem.class \
	padmin.class \
	padminrules1.class \
	padminrules2.class \
	pktinfo.class \
	raproxy.class \
	raproxyrules.class \
	restore.class \
	restoremenu.class \
	rpcproxy.class \
	rpcproxyrules.class \
	smwrap.class \
	smwraprules.class \
	sockd.class \
	sockdrules.class \
	ssmenu.class \
	tarinfo.class \
	times.class \
	tnproxy.class \
	tnproxyrules.class \
	webblock.class \
	webgaterules.class

INC = -I $(JAVATOP)/include \
	-I ../include \
	-I ../libdes \
	-I ../util/md5 \
	-I ../padmin

JAR11=PATH=$(JAVATOP)/bin:$(PATH) CLASSPATH=$(JAVACLASSPATH):$(CLASSPATH) $(JAVATOP)/bin/jar

JAVAC11=PATH=$(JAVATOP)/bin:$(PATH) CLASSPATH=$(JAVACLASSPATH):$(CLASSPATH) $(JAVATOP)/bin/javac

JAVAH11=PATH=$(JAVATOP)/bin:$(PATH) CLASSPATH=$(JAVACLASSPATH):$(CLASSPATH) $(JAVATOP)/bin/javah

.java.class:
	echo "$(JAVAC11) $<"; \
	$(JAVAC11) $<; \

.c.o:
	@if [ "`uname`" = "AIX" ]; then \
		echo "$(CC) -D__STR__ -DTREX_ENC -qcpluscmt $(CCOPTS) \
			-I $(JAVATOP)/include/aix $(INC) -c $<"; \
		$(CC) -DTREX_ENC -qcpluscmt $(CCOPTS) \
			-I $(JAVATOP)/include/aix $(INC) -c $<; \
	elif [ "`uname`" = "SunOS" ]; then \
		echo "$(SUNCC) -D_REENTRANT -DTREX_ENC $(CCOPTS) \
			-I $(JAVATOP)/include/solaris $(INC) -c $<"; \
		$(SUNCC) -D_REENTRANT -DTREX_ENC $(CCOPTS) \
			-I $(JAVATOP)/include/solaris $(INC) -c $<; \
	elif [ "`uname`" = "HP-UX" ]; then \
		echo "$(HPCC) -D_REENTRANT -DTREX_ENC $(CCOPTS) \
			$(EXTRA_HPUX_CFLAGS) \
			-I $(JAVATOP)/include/hp-ux $(INC) -c $<"; \
		$(HPCC) -D_REENTRANT -DTREX_ENC $(CCOPTS) \
			$(EXTRA_HPUX_CFLAGS) \
			-I $(JAVATOP)/include/hp-ux $(INC) -c $<; \
        elif [ "`uname`" = "Linux" ]; then \
                echo "$(LINUXCC) -D_REENTRANT -DTREX_ENC $(CCOPTS) \
                        -I $(JAVATOP)/include/linux \
                        -I $(JAVATOP)/include/genunix \
			-I $(JAVATOP)/include/green_threads/include \
			$(INC) -c $<"; \
                $(LINUXCC) -D_REENTRANT -DTREX_ENC $(CCOPTS) \
                        -I $(JAVATOP)/include/linux \
                        -I $(JAVATOP)/include/genunix \
			-I $(JAVATOP)/include/green_threads/include \
			$(INC) -c $<; \
	fi

all: gwrecord.class pktinfo.class pktinfo.h tarinfo.class tarinfo.h \
		$(GLUE).class $(GLUE).h \
		$(OBJS) $(CLASSES) $(LIB) $(JAR)
#all: $(GLUE).class $(CLASSES) $(LIB)

pktinfo.h: pktinfo.java
	$(JAVAH11) -jni pktinfo

tarinfo.h: tarinfo.java
	$(JAVAH11) -jni tarinfo

$(GLUE).h: $(GLUE).java
	$(JAVAH11) -jni $(GLUE)

#$(GLUE).c: $(GLUE).java
#	$(JAVAH11) -stubs $(GLUE)

#$(CLASS).class: $(CLASS).java
#	$(JAVAC11) $(CLASS).java

$(GLUE).class: $(GLUE).java
	$(JAVAC11) $(GLUE).java; \

#	$(CC) $(OBJS) -L$(JAVATOP)/lib/aix/native_threads -ljava -bE:$(GLUE).exp -bnoentry -bM:SRE -o shr.o

$(LIB): $(OBJS) $(CLASS).class $(GLUE).exp
	if [ -f $(LIB) ]; then rm $(LIB) 2>/dev/null; fi
	@if [ "`uname`" = "AIX" ]; then \
		echo "$(LD) $(OBJS) $(LNLIBS) -lisode -lc_r \
			-L$(JAVATOP)/lib/aix/native_threads -ljava \
			-bE:$(GLUE).exp -bnoentry -bM:SRE -o $(LIB)"; \
		$(LD) $(OBJS) $(LNLIBS) -lisode -lc_r \
			-L$(JAVATOP)/lib/aix/native_threads -ljava \
			-bE:$(GLUE).exp -bnoentry -bM:SRE -o $(LIB); \
	elif [ "`uname`" = "SunOS" ]; then \
		HW="`uname -p`"; \
		echo "$(SUNCC) $(OBJS) $(LNLIBS) -lsocket -lnsl \
			-L$(JAVATOP)/lib/$$HW/native_threads -ljava \
			-o $(LIB)"; \
		$(SUNCC) $(OBJS) $(LNLIBS) -lsocket -lnsl \
			-L$(JAVATOP)/lib/$$HW/native_threads -ljava \
			-o $(LIB); \
	elif [ "`uname`" = "HP-UX" ]; then \
		echo "$(LD) -b $(OBJS) $(LNLIBS) \
			-lc -L$(JAVATOP)/lib/green_threads -ljava \
			-o $(LIB)"; \
		$(LD) -b $(OBJS) $(LNLIBS) \
			-lc -L$(JAVATOP)/lib/green_threads -ljava \
			-o $(LIB); \
        elif [ "`uname`" = "Linux" ]; then \
                LHW="`uname -m`"; \
                echo "$(LINUXLD) $(OBJS) $(LNLIBS) \
                        -shared -o $(LIB)"; \
                $(LINUXLD) $(OBJS) $(LNLIBS) \
                        -shared -o $(LIB); \
	fi

$(JAR): $(CLASSES) $(GLUE).class
	$(JAR11) cvf $(JAR) $(CLASSES) *$$*.class $(GLUE).class; \

clean:
	-rm $(CLEAN_OBJS) $(LIB)
	echo "rm gwrecord.class $(CLASSES) $(GLUE).h $(GLUE).c";  \
	rm gwrecord.class $(CLASSES) $(GLUE).h $(GLUE).c;  \
