
# Makefile configuration
include 	../Make.conf


# Headers to be included in _each_ .o's dependencies
HEADERS         = language.h ../server/srvtypes.h 
HEADERS	       += ../common/metadata.h ../common/metaops.h
TSTOBJS         = langcomp-tst.o langdisasm.o langvm.o langtest.o
OBJECTS         = langcompile.o langdisasm.o langvm.o
LIBS            = ../common/common.a
TARGETS         = language.a

# Add current, base, common and server directory to include path
CFLAGS          += -I. -I.. -I../common -I../server


# To prevent Make from being satisfied after the first target
all:            $(TARGETS)

testprogs:	$(TARGETS) langtest


# The objects
langcomp-tst.o:	langcompile.c $(HEADERS)
		$(CC) $(CFLAGS) -DCOMP_MEM -o $@ -c $<

langcompile.o:	langcompile.c $(HEADERS)
		$(CC) $(CFLAGS) -o $@ -c $<

langdisasm.o:	langdisasm.c $(HEADERS)
		$(CC) $(CFLAGS) -o $@ -c $<

langvm.o:	langvm.c $(HEADERS)
		$(CC) $(CFLAGS) -o $@ -c $<

langtest.o:	langtest.c $(HEADERS)
		$(CC) $(CFLAGS) -DCOMP_MEM -o $@ -c $<


# The targets
langtest:	$(TSTOBJS) $(LIBS)
		$(CC) $(LDFLAGS) -o $@ $(TSTOBJS) $(LIBS)

language.a:	$(OBJECTS)
		$(AR) rc $@ $(OBJECTS)
		$(RANLIB) $@
#		$(AR) s $@

# Clean
clean:		
		rm -f $(TSTOBJS) $(OBJECTS) $(TARGETS) langtest core

