-OBJS= hbytes.o \
- enum.o
+OBJS= tables.o \
+ tcmdiflib.o \
+ hbytes.o \
+ adns.o \
+ enum.o \
+ idtable.o \
+ scriptinv.o \
+ ulongs.o \
+ sockaddr.o \
+ dgram.o \
+ tuntap.o \
+ chop.o \
+ hook.o \
+ bcmode.o \
+ misc.o \
+ algtables.o \
+ crypto.o \
+ parse.o \
+ addrmap.o
-HDRS= hbytes.h
+HDRS= hbytes.h \
+ $(AUTO_HDRS)
-TARGETS= hbytes.so
+AUTO_HDRS= tables.h
+AUTO_SRCS= tables.c
+AUTOS= $(AUTO_HDRS) $(AUTO_SRCS)
-CFLAGS= -g -Wall -O
+TARGETS= hbytes.so autocode.tcl autococo.tcl
-all: $(TARGETS)
+CC_CRYPTO= $(CC) $(CFLAGS) $(CPPFLAGS) -O3
+CPPFLAGS= -I../plocal/include $(TCL_MEM_DEBUG) $(CMDLINE_CPPFLAGS)
+LDFLAGS= -L../plocal/lib
+LDLIBS= -lnettle -ladns
+CFLAGS= -g -Wall -Wmissing-prototypes -Wstrict-prototypes -Werror \
+ $(OPTIMISE)
+OPTIMISE= -O2
+TCL_MEM_DEBUG= -DTCL_MEM_DEBUG
+
+all: $(TARGETS) $(AUTOS)
hbytes.so: $(OBJS)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ -shared $(OBJS) $(LDLIBS)
+autoco%.tcl: deco%gen.tcl decobogen.tcl general.tcl ./hbytes.so \
+ protocol.deco
+ ./$< protocol.deco >$@.new && mv -f $@.new $@
+
+%.c: %.tct tcmdifgen
+ ./tcmdifgen -wc -o$@ $<
+
+%.h: %.tct tcmdifgen
+ ./tcmdifgen -wh -o$@ $<
+
%.o: %.c $(HDRS)
$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
+#alg.o: alg.c alg.h alg2.h
+# $(CC_CRYPTO) -o $@ -c $<
+
clean:
rm -f $(OBJS) $(TARGETS) *~ ./#*#