# -*- sh -*-

#---------------------------------------------------------------------------
# Choose a C compiler.  It must understand prototypes.
#-----------------------------------------------------------------------------
CC = /usr/bin/x86_64-pld-linux-gcc
CFLAGS = -O2 -fwrapv -pipe -gdwarf-4 -fno-debug-types-section -fvar-tracking-assignments -g2 -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4 -Werror=trampolines -fPIC -march=x86-64 -mtune=generic -gdwarf-4 -fno-debug-types-section -fvar-tracking-assignments -g2 -Wformat -Werror=format-security  
LDFLAGS = -Wl,--as-needed -Wl,--no-copy-dt-needed-entries -Wl,-z,relro -Wl,-z,combreloc  -Wl,-export-dynamic
#-----------------------------------------------------------------------------
# Directory where the various libraries are located.
#-----------------------------------------------------------------------------
SLANG_INCLUDE = ../src#             location of slang.h
SLANG_LIB = $(SLANG_INCLUDE)/$(ARCH)objs#     location of libslang.a

#---------------------------------------------------------------------------
# Other libraries
#---------------------------------------------------------------------------
TCAPLIB =  -ldl
#TCAPLIB = -ltermcap

#----------------------------------------------------------------------------
# End of user configuration
#----------------------------------------------------------------------------

SHELL = /bin/sh
OTHERSTUFF = useropen pager keypad smgtest
CONFIG_H = config.h

ALL_CFLAGS = $(CFLAGS) -Dunix -I$(SLANG_INCLUDE)

COMPILE_CMD = $(CC) -c $(ALL_CFLAGS)
EXECLIBS = -L$(SLANG_LIB) -lslang -lm $(TCAPLIB)
EXECDEPS = $(SLANG_LIB)/libslang.a
DOT_O_DEPS = demolib.c

#---------------------------------------------------------------------------
all: $(CONFIG_H) $(OTHERSTUFF)

$(CONFIG_H) : $(SLANG_LIB)/libslang.a ../src/config.h
	/bin/cp ../src/config.h $(CONFIG_H)
$(SLANG_LIB)/libslang.a :
	cd ../src; $(MAKE)
#---------------------------------------------------------------------------
# Housekeeping
#---------------------------------------------------------------------------
clean:
	-/bin/rm -f *~ $(OTHERSTUFF) *.o
distclean: clean
	-/bin/rm -rf Makefile config.h
#
useropen : useropen.o $(useropen_DEPS) $(EXECDEPS)
	$(CC) -o useropen $(LDFLAGS) useropen.o $(useropen_LIBS) $(EXECLIBS)
useropen.o : useropen.c $(DOT_O_DEPS) $(useropen_O_DEP)
	$(COMPILE_CMD) $(useropen_INC) $(EXECINC) useropen.c

pager : pager.o $(pager_DEPS) $(EXECDEPS)
	$(CC) -o pager $(LDFLAGS) pager.o $(pager_LIBS) $(EXECLIBS)
pager.o : pager.c $(DOT_O_DEPS) $(pager_O_DEP)
	$(COMPILE_CMD) $(pager_INC) $(EXECINC) pager.c

keypad : keypad.o $(keypad_DEPS) $(EXECDEPS)
	$(CC) -o keypad $(LDFLAGS) keypad.o $(keypad_LIBS) $(EXECLIBS)
keypad.o : keypad.c $(DOT_O_DEPS) $(keypad_O_DEP)
	$(COMPILE_CMD) $(keypad_INC) $(EXECINC) keypad.c

smgtest : smgtest.o $(smgtest_DEPS) $(EXECDEPS)
	$(CC) -o smgtest $(LDFLAGS) smgtest.o $(smgtest_LIBS) $(EXECLIBS)
smgtest.o : smgtest.c $(DOT_O_DEPS) $(smgtest_O_DEP)
	$(COMPILE_CMD) $(smgtest_INC) $(EXECINC) smgtest.c
