1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
MODULES = \
platform-specific-impl \
basic-math \
binary-file-io \
bitwise-arithmetic \
bvm-diag-matrix \
bvm-matrices \
bvm-matrix-base \
bytevector \
command-line-parser \
complex \
console-io \
core \
core-forms \
core-forms2 \
dynamic-list \
files \
goops-classes \
hash-table0 \
hash-table \
hash-table-opt \
iterator \
list-utilities \
math \
matrix \
mutable-pair \
nonpure-iterator \
object-string-conversion \
plugins \
promise \
rational \
real-math \
singleton \
stream \
string-utilities \
text-file-io \
statprof \
system
EXTRA_MATH = 1
POSIX_MATH = 1
ifdef EXTRA_MATH
MODULES += extra-math
endif
ifdef POSIX_MATH
MODULES += posix-math
endif
PLATFORM_INTF = platform-specific-impl-guile-3.0.thi
PLATFORM_BODY = platform-specific-impl-guile-3.0.thb
INTERFACE_TARGET = $(MODULES:%=%.tci)
BODY_TARGET = $(MODULES:%=%.tcb)
INTERFACE_LINKED = $(MODULES:%=__intf_%.go)
BODY_LINKED = $(MODULES:%=__impl_%.go)
INTERFACE_AUX = $(MODULES:%=__intf_%.aux)
BODY_AUX = $(MODULES:%=__impl_%.aux)
BODY_LINKED0 = $(patsubst %,__impl_%.go,$(filter-out statprof,$(MODULES)))
EXTRA_COMP_OPTIONS ?=
EXTRA_LINK_OPTIONS ?=
COMPILE ?= theme-d-compile
LINK ?= theme-d-link
.PHONY: all clean link-clean pcode-modules link-modules link-bodies
all: pcode-modules link-modules
pcode-modules: $(INTERFACE_TARGET) $(BODY_TARGET)
link-modules: link-interfaces link-bodies
link-interfaces: $(MODULES:%=__intf_%.go) $(MODULES:%=__intf_%.aux)
link-bodies: $(MODULES:%=__impl_%.go) $(MODULES:%=__impl_%.aux)
%.tci : %.thi
$(COMPILE) -m .. -o $@ $(EXTRA_COMP_OPTIONS) $<
%.tcb : %.thb
$(COMPILE) -m .. -o $@ $(EXTRA_COMP_OPTIONS) $<
$(INTERFACE_LINKED) : __intf_%.go : %.tci
$(LINK) --module -M ..: -o $@ $(EXTRA_LINK_OPTIONS) $<
$(INTERFACE_AUX) : __intf_%.aux : __intf_%.go
$(BODY_LINKED0) : __impl_%.go : %.tcb
$(LINK) --module -M ..: -o $@ $(EXTRA_LINK_OPTIONS) $<
__impl_statprof.go : statprof.tcb
$(LINK) --module -M ..: -x "(statprof)" -o $@ $(EXTRA_LINK_OPTIONS) $<
$(BODY_AUX) : __impl_%.aux : __impl_%.go
clean:
-rm -f *.tc?
-rm -f platform-specific-impl.thi
-rm -f platform-specific-impl.thb
-rm -f $(INTERFACE_LINKED) $(INTERFACE_AUX)
-rm -f $(BODY_LINKED) $(BODY_AUX)
link-clean:
-rm -f $(INTERFACE_LINKED) $(INTERFACE_AUX)
-rm -f $(BODY_LINKED) $(BODY_AUX)
platform-specific-impl.thi: $(PLATFORM_INTF)
ln -sf $(PLATFORM_INTF) platform-specific-impl.thi
platform-specific-impl.thb: $(PLATFORM_BODY)
ln -sf $(PLATFORM_BODY) platform-specific-impl.thb
platform-specific-impl.tci : core-forms.tci
platform-specific-impl.tcb : platform-specific-impl.tci
__intf_platform-specific-impl.go : __intf_core-forms.go
include deps.mk
|