|
1 | | -SHELL := /bin/bash |
2 | | -LIBDIR=lib/$(SWIPL_ARCH)/ |
3 | | -CC=gcc |
4 | | -INC1=cudd-3.0.0/cudd |
5 | | -CURRDIR=$(shell pwd) |
6 | | -INC2=${SWIPL_HOME_DIR}/include |
7 | | -INCDIRS= -I$(INC1) -I$(SWIPL_INCLUDE_DIRS) |
8 | | -CFLAGSBDDEM= $(CFLAGS) -fPIC -DBP_FREE -O3 -fomit-frame-pointer -Wall -g -O2 ${INCDIRS} |
9 | | -LDFLAGS= $(LDSOFLAGS) -shared -Lcudd-3.0.0/cudd/.libs/ -lcudd -L$(SWIPL_LIBRARIES_DIR) $(SWIPL_LIB) |
10 | | -SOEXT=$(SWIPL_MODULE_EXT) |
11 | | - |
12 | | -all: bddem.$(SOEXT) |
| 1 | +SHELL := /bin/sh |
13 | 2 |
|
14 | | -bddem.$(SOEXT): bddem.o |
15 | | - @echo $(SOEXT) |
16 | | - #swipl-ld -export-dynamic bddem.o $(LDFLAGS) -o bddem.$(SOEXT) |
17 | | - if test $(SWIPL_ARCH) == x64-win64 -o $(SWIPL_ARCH) == i386-win32 ; then \ |
18 | | - $(CC) bddem.o -static-libgcc -static-libstdc++ $(LDFLAGS) -o bddem.$(SOEXT) ;\ |
19 | | - else \ |
20 | | - if [[ $(SWIPL_ARCH) == *darwin* ]] ; then \ |
21 | | - $(CC) bddem.o $(LDFLAGS) -o bddem.$(SOEXT) ;\ |
22 | | - else \ |
23 | | - $(CC) -export-dynamic bddem.o $(LDFLAGS) -o bddem.$(SOEXT) ;\ |
24 | | - fi \ |
25 | | - fi |
26 | | - |
27 | | -bddem.o : bddem.c |
28 | | - cd cudd-3.0.0 && $(MAKE) && cd .. |
29 | | - $(CC) -c $(CFLAGSBDDEM) bddem.c -o bddem.o |
| 3 | +SWIPL ?= swipl |
| 4 | +SWIPL_BIN := $(shell command -v $(SWIPL)) |
| 5 | +SWIPL_BINDIR := $(dir $(SWIPL_BIN)) |
| 6 | +SWIPL_LD := $(SWIPL_BINDIR)swipl-ld |
| 7 | +CC ?= cc |
| 8 | +INSTALL ?= install |
30 | 9 |
|
| 10 | +PLBASE := $(shell $(SWIPL) --dump-runtime-variables | sed -n 's/^PLBASE="\(.*\)";/\1/p') |
| 11 | +PLARCH := $(shell $(SWIPL) --dump-runtime-variables | sed -n 's/^PLARCH="\(.*\)";/\1/p') |
| 12 | +SOEXT := $(shell $(SWIPL) --dump-runtime-variables | sed -n 's/^PLSOEXT="\(.*\)";/\1/p') |
31 | 13 |
|
32 | | -distclean: clean |
33 | | - rm Makefile |
34 | | - cd cudd-3.0.0 && $(MAKE) distclean && cd .. |
| 14 | +CUDD_DIR := cudd-3.0.0 |
| 15 | +LIBDIR := lib/$(PLARCH) |
| 16 | + |
| 17 | +INC1 := $(CUDD_DIR)/cudd |
| 18 | +INC2 := $(PLBASE)/include |
| 19 | +INC3 := $(CUDD_DIR)/st |
| 20 | +INCDIRS := -I$(INC1) -I$(INC2) -I$(INC3) |
| 21 | + |
| 22 | +CFLAGSBDDEM := $(CFLAGS) -fPIC -DBP_FREE -O3 -fomit-frame-pointer -Wall -g -O2 $(INCDIRS) |
| 23 | +LDFLAGS := -shared -L$(CUDD_DIR)/cudd/.libs/ -lcudd |
| 24 | + |
| 25 | +.PHONY: all clean distclean check install installcheck |
| 26 | + |
| 27 | +all: bddem.$(SOEXT) |
| 28 | + |
| 29 | +bddem.$(SOEXT): bddem.o |
| 30 | + $(SWIPL_LD) bddem.o $(LDFLAGS) -o $@ |
| 31 | + |
| 32 | +bddem.o: bddem.c |
| 33 | + $(MAKE) -C $(CUDD_DIR) |
| 34 | + $(CC) -c $(CFLAGSBDDEM) bddem.c -o $@ |
35 | 35 |
|
36 | 36 | clean: |
37 | 37 | rm -f *.o bddem.$(SOEXT) |
38 | 38 |
|
| 39 | +distclean: clean |
| 40 | + $(MAKE) -C $(CUDD_DIR) distclean |
| 41 | + |
39 | 42 | check: |
40 | 43 | @echo "no check" |
41 | 44 |
|
42 | 45 | install: all |
43 | | - mkdir -p $(LIBDIR) |
44 | | - @echo $(SOEXT) |
45 | | - cp bddem.$(SOEXT) $(LIBDIR) |
| 46 | + $(INSTALL) -d $(LIBDIR) |
| 47 | + $(INSTALL) bddem.$(SOEXT) $(LIBDIR)/bddem.$(SOEXT) |
46 | 48 |
|
47 | 49 | installcheck: |
48 | | - swipl -g test_bddem -t halt prolog/bddem_test.pl |
| 50 | + $(SWIPL) -g test -t halt prolog/bddem_test.pl |
0 commit comments