# Makefile for CLISP module set new-clx

srcdir = /build/clisp-slpQkw/clisp-2.49.20250504.gitf662209/modules/clx/new-clx

# These variables are used to build binaries for the build platform,
# that are not linked to Gnulib or CLISP code.
BUILD_CC = gcc
BUILD_CPPFLAGS = -Wdate-time -D_FORTIFY_SOURCE=3 -I/usr/include/libsvm
BUILD_CFLAGS = -g -O2 -Werror=implicit-function-declaration -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/build/clisp-slpQkw/clisp-2.49.20250504.gitf662209=. -fstack-protector --param=ssp-buffer-size=4 -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -fdebug-prefix-map=/build/clisp-slpQkw/clisp-2.49.20250504.gitf662209=/usr/src/clisp-1:2.49.20250504.gitf662209-1
BUILD_LDFLAGS = -Wl,-Bsymbolic-functions -Wl,-z,relro

# These variables are used to build binaries for the target platform.
# They are set through link.sh (invoked from clisp-link).
CC = gcc
CPPFLAGS = -Wdate-time -D_FORTIFY_SOURCE=3 -I/usr/include/libsvm
CFLAGS = -O
CLISP = /build/clisp-slpQkw/clisp-2.49.20250504.gitf662209/debian/build/clisp -K base  -E UTF-8 -Emisc 1:1 -Epathname 1:1 -norc -norc -q
CLISP_LINKKIT = /build/clisp-slpQkw/clisp-2.49.20250504.gitf662209/debian/build/linkkit

LN = ln
LN_S = ln -s
SHELL = /bin/sh

GENERATED = clx.fas image.fas resource.fas clx.o clx-preload.lisp
DISTRIBFILES = link.sh Makefile $(GENERATED) $(srcdir)/README \
	$(srcdir)/clx.lisp $(srcdir)/image.lisp $(srcdir)/resource.lisp
distribdir =

### Custom defs.
CCMP2C = ../../ccmp2c
RM = rm -f
WANTS =  -DWANT_XPM=1 -DWANT_XSHAPE=1
X_CFLAGS = 

# default target: make the module
clisp-module : $(GENERATED)

clx.fas clx.lib: $(srcdir)/clx.lisp $(srcdir)/clx-preload.lisp
	$(CLISP) -i $(srcdir)/clx-preload.lisp -c $(srcdir)/clx.lisp -o ./

image.fas: $(srcdir)/image.lisp clx.lib
	$(CLISP) -i $(srcdir)/clx-preload.lisp -c $(srcdir)/image.lisp -o ./

resource.fas: $(srcdir)/resource.lisp clx.lib
	$(CLISP) -i $(srcdir)/clx-preload.lisp -c $(srcdir)/resource.lisp -o ./

clx.d: $(srcdir)/clx.f
	$(CCMP2C) $(srcdir)/clx.f > genclx.c
	$(BUILD_CC) $(BUILD_CPPFLAGS) $(WANTS) $(BUILD_CFLAGS) $(BUILD_LDFLAGS) -o genclx genclx.c
	./genclx -l -o clx.d > clx.d
	$(RM) genclx.c
	$(RM) genclx

clx.c: clx.d
	$(CLISP) -C $(CLISP_LINKKIT)/modprep clx.d clx.c

clx.o: clx.c
	$(CC) $(CPPFLAGS) $(CFLAGS) $(X_CFLAGS) -I$(CLISP_LINKKIT) -c clx.c

clx-preload.lisp : $(srcdir)/clx-preload.lisp
	$(LN_S) $(srcdir)/clx-preload.lisp .

# Make a module distribution into $(distribdir)
clisp-module-distrib : clisp-module force
	$(LN) $(DISTRIBFILES) $(distribdir)
	mkdir -p $(distribdir)/demos
	$(LN) $(srcdir)/demos/*.lisp $(srcdir)/demos/README $(distribdir)/demos/
	mkdir -p $(distribdir)/demos/screens $(distribdir)/demos/xpms
	$(LN) $(srcdir)/demos/screens/screen.* $(distribdir)/demos/screens/
	$(LN) $(srcdir)/demos/xpms/*.xpm $(distribdir)/demos/xpms/

clean : force
	$(RM) genclx.c genclx *.lib *.fas clx.e clx.d clx.c clx.o core *.a

distclean : clean

force:

