CXXFLAGS = -DHAVE_LONG_DOUBLE_LIBM -Wall
LDFLAGS = -lm -lncurses -s

# Define LIBM_HAS_NO_LGAMMAL if compiling with glibc. As of version
# 2.1.2, this function is missing from the libm.
#
LIBM_HAS_NO_LGAMMAL = 1



OBJS = main.o hp67funcs.o calcfloat.o progmem.o input.o parsers.o arguments.o

ifdef LIBM_HAS_NO_LGAMMAL
OBJS += lgammal.o
endif


STATICOBJS = $(OBJS)
STATICLDFLAGS := $(LDFLAGS)

LDFLAGS += -lstdc++


hp67 : $(OBJS)
	$(CC) $(OBJS) $(LDFLAGS) -o $@

hp67.static : $(STATICOBJS)
	$(CC) $(STATICOBJS) $(STATICLDFLAGS) -o $@

clean :
	rm -f *.o core *~

veryclean : clean
	rm -f hp67 hp67.static

archive : hp67 hp67.static
	$(MAKE) clean
	mkdir archive
	mkdir archive/hp67
	cp hp67 hp67.static archive/hp67
	for i in RCS/* ; do j=`basename $$i ,v` ; cp $$j archive/hp67 ; done
	tar cf hp67.tar -C archive hp67
	gzip -9 hp67.tar
	rm -fr archive

main.o:	calcfloat.h datatypes.H hp67.h config.h hp_prots.h stack.h memory.h \
	progmem.h hpglobals.h input.h hp_curses.h

hp67funcs.o:	hp67.h config.h hp_prots.h calcfloat.h datatypes.H stack.h \
	        hpglobals.h progmem.h memory.h flags.h

calcfloat.o:	calcfloat.h datatypes.H hp67.h config.h hp_prots.h

progmem.o:	calcfloat.h datatypes.H hp67.h config.h hp_prots.h progmem.h \
	        hpglobals.h memory.h

input.o:	hp_curses.h input.h hp67.h config.h hp_prots.h progmem.h \
		calcfloat.h datatypes.H stack.h hpglobals.h memory.h layout.h

parsers.o:	progmem.h calcfloat.h datatypes.H hp67.h config.h hp_prots.h

