diff options
author | Duncan Coutts <duncan@well-typed.com> | 2009-04-29 15:15:53 +0000 |
---|---|---|
committer | Duncan Coutts <duncan@well-typed.com> | 2009-04-29 15:15:53 +0000 |
commit | 442f06cc8f9f729d33a8de3aa14cdaf80545808e (patch) | |
tree | c8e4ea7bc1c4ba464f8482db53608edb962dec75 /rules/build-package-way.mk | |
parent | 7f995ef4d41815cd2d9fab774a638b5493d33910 (diff) | |
download | haskell-442f06cc8f9f729d33a8de3aa14cdaf80545808e.tar.gz |
Build library packages as shared libs
when we configure ghc with --enable-shared
Diffstat (limited to 'rules/build-package-way.mk')
-rw-r--r-- | rules/build-package-way.mk | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/rules/build-package-way.mk b/rules/build-package-way.mk index 5fb3cdf9ee..41496db915 100644 --- a/rules/build-package-way.mk +++ b/rules/build-package-way.mk @@ -26,6 +26,16 @@ $1_$2_$3_MKSTUBOBJS = find $1/$2/build -name "*_stub.$$($3_osuf)" -print # HACK ^^^ we tried to use $(wildcard), but apparently it fails due to # make using cached directory contents, or something. +ifeq "$3" "dyn" +# Link a dynamic library +$$($1_$2_$3_LIB) : $$($1_$2_$3_HS_OBJS) $$($1_$2_dyn_C_OBJS) $$($1_$2_dyn_S_OBJS) $$(ALL_RTS_LIBS) + $$(RM) $$@ + $$($1_$2_HC) $$($1_$2_dyn_C_OBJS) $$($1_$2_dyn_S_OBJS) $$($1_$2_$3_HS_OBJS) \ + `$$($1_$2_$3_MKSTUBOBJS)` \ + -shared -dynamic \ + -no-auto-link-packages $$(addprefix -package,$$($1_$2_DEPS)) \ + -o $$@ +else # Build the ordinary .a library ifeq "$$($1_$2_SplitObjs)" "YES" $$($1_$2_$3_LIB) : $$($1_$2_$3_HS_OBJS) $$($1_$2_v_C_OBJS) $$($1_$2_v_S_OBJS) @@ -36,6 +46,7 @@ $$($1_$2_$3_LIB) : $$($1_$2_$3_HS_OBJS) $$($1_$2_v_C_OBJS) $$($1_$2_v_S_OBJS) $$(RM) $$@ echo $$($1_$2_v_C_OBJS) $$($1_$2_v_S_OBJS) $$($1_$2_$3_HS_OBJS) `$$($1_$2_$3_MKSTUBOBJS)` | xargs $$(AR) $$(EXTRA_AR_ARGS) $$@ endif +endif $(call all-target,$1_$2,all_$1_$2_$3) $(call all-target,$1_$2_$3,$$($1_$2_$3_LIB)) |