@@ -19,33 +19,42 @@ SRCDIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST))))
1919# get the executable suffix, if any
2020EXE := $(suffix $(abspath $(JULIA ) ) )
2121
22+ DYLIB := .so
23+
2224# get compiler and linker flags. (see: `contrib/julia-config.jl`)
2325JULIA_CONFIG := $(JULIA ) -e 'include(joinpath(Sys.BINDIR, Base.DATAROOTDIR, "julia", "julia-config.jl"))' --
2426CPPFLAGS_ADD :=
2527CFLAGS_ADD = $(shell $(JULIA_CONFIG ) --cflags)
2628LDFLAGS_ADD = -lm $(shell $(JULIA_CONFIG ) --ldflags --ldlibs)
29+ DYLIBFLAGS := --shared -fPIC
2730
2831DEBUGFLAGS += -g
2932
3033# =============================================================================
3134
32- release : $(BIN ) /gcext$(EXE )
33- debug : $(BIN ) /gcext-debug$(EXE )
35+ release : $(BIN ) /gcext$(EXE ) $( BIN ) /Foreign/deps/foreignlib $( DYLIB )
36+ debug : $(BIN ) /gcext-debug$(EXE ) $( BIN ) /Foreign/deps/foreignlib-debug $( DYLIB )
3437
3538$(BIN ) /gcext$(EXE ) : $(SRCDIR ) /gcext.c
3639 $(CC ) $^ -o $@ $(CPPFLAGS_ADD ) $(CPPFLAGS ) $(CFLAGS_ADD ) $(CFLAGS ) $(LDFLAGS_ADD ) $(LDFLAGS )
3740
3841$(BIN ) /gcext-debug$(EXE ) : $(SRCDIR ) /gcext.c
3942 $(CC ) $^ -o $@ $(CPPFLAGS_ADD ) $(CPPFLAGS ) $(CFLAGS_ADD ) $(CFLAGS ) $(LDFLAGS_ADD ) $(LDFLAGS ) $(DEBUGFLAGS )
4043
44+ $(BIN ) /Foreign/deps/foreignlib$(DYLIB ) : $(SRCDIR ) /Foreign/deps/foreignlib.c
45+ $(CC ) $^ -o $@ $(DYLIBFLAGS ) $(CPPFLAGS_ADD ) $(CPPFLAGS ) $(CFLAGS_ADD ) $(CFLAGS ) $(LDFLAGS_ADD ) $(LDFLAGS )
46+
47+ $(BIN ) /Foreign/deps/foreignlib-debug$(DYLIB ) : $(SRCDIR ) /Foreign/deps/foreignlib.c
48+ $(CC ) $^ -o $@ $(DYLIBFLAGS ) $(CPPFLAGS_ADD ) $(CPPFLAGS ) $(CFLAGS_ADD ) $(CFLAGS ) $(LDFLAGS_ADD ) $(LDFLAGS ) $(DEBUGFLAGS )
49+
4150ifneq ($(abspath $(BIN ) ) ,$(abspath $(SRCDIR ) ) )
4251# for demonstration purposes, our demo code is also installed
4352# in $BIN, although this would likely not be typical
4453$(BIN ) /LocalModule.jl : $(SRCDIR ) /LocalModule.jl
4554 cp $< $@
4655endif
4756
48- check : $(BIN ) /gcext$(EXE ) $(BIN ) /LocalTest.jl
57+ check : $(BIN ) /gcext$(EXE ) $(BIN ) /LocalTest.jl $( BIN ) /Foreign/deps/foreignlib $( DYLIB )
4958 $(JULIA ) --depwarn=error $(SRCDIR ) /gcext-test.jl $<
5059 @echo SUCCESS
5160
0 commit comments