| sed "s/@LibVersion@/$$(libraries/$1_dist-install_VERSION)/" \
| sed "s/@ProjectVersion@/$(ProjectVersion)/" \
> rts/dist/build/win32/libHS$1.def
-
+
rts/dist/build/win32/libHS$1.dll.a : rts/dist/build/win32/libHS$1.def
"$$(DLLTOOL)" -d rts/dist/build/win32/libHS$1.def \
-l rts/dist/build/win32/libHS$1.dll.a
cat rts/win32/libHSffi.def \
| sed "s/@ProjectVersion@/$(ProjectVersion)/" \
> rts/dist/build/win32/libHSffi.def
-
+
rts/dist/build/win32/libHSffi.dll.a : rts/dist/build/win32/libHSffi.def
"$(DLLTOOL)" -d rts/dist/build/win32/libHSffi.def \
-l rts/dist/build/win32/libHSffi.dll.a
# Building one way
define build-rts-way # args: $1 = way
+ifneq "$$(BINDIST)" "YES"
+
# The per-way CC_OPTS
ifneq "$$(findstring debug, $1)" ""
rts_dist_$1_HC_OPTS =
# Making a shared library for the RTS.
ifneq "$$(findstring dyn, $1)" ""
-ifeq "$(HOSTPLATFORM)" "i386-unknown-mingw32"
+ifeq "$$(HOSTPLATFORM)" "i386-unknown-mingw32"
$$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(ALL_RTS_DEF_LIBS) rts/libs.depend
"$$(RM)" $$(RM_OPTS) $$@
- "$$(rts_dist_HC)" -shared -dynamic -dynload deploy \
+ "$$(rts_dist_HC)" -package-name rts -shared -dynamic -dynload deploy \
-no-auto-link-packages `cat rts/libs.depend` $$(rts_$1_OBJS) $$(ALL_RTS_DEF_LIBS) -o $$@
-ifeq "$(darwin_TARGET_OS)" "1"
+ifeq "$$(darwin_TARGET_OS)" "1"
# Ensure library's install name is correct before anyone links with it.
install_name_tool -id $(ghclibdir)/$$(rts_$1_LIB_NAME) $$@
endif
else
$$(rts_$1_LIB) : $$(rts_$1_OBJS) rts/libs.depend
"$$(RM)" $$(RM_OPTS) $$@
- "$$(rts_dist_HC)" -shared -dynamic -dynload deploy \
+ "$$(rts_dist_HC)" -package-name rts -shared -dynamic -dynload deploy \
-no-auto-link-packages `cat rts/libs.depend` $$(rts_$1_OBJS) -o $$@
endif
else
echo $$(rts_$1_OBJS) | "$$(XARGS)" $$(XARGS_OPTS) "$$(AR)" $$(AR_OPTS) $$(EXTRA_AR_ARGS) $$@
endif
+endif
+
endef
# And expand the above for each way:
WARNING_OPTS += -Waggregate-return
WARNING_OPTS += -Wpointer-arith
WARNING_OPTS += -Wmissing-noreturn
-WARNING_OPTS += -Wcast-align
WARNING_OPTS += -Wnested-externs
WARNING_OPTS += -Wredundant-decls
#WARNING_OPTS += -Wshadow
#WARNING_OPTS += -Wcast-qual
+# This one seems buggy on GCC 4.1.2, which is the only GCC version we
+# have that can bootstrap the SPARC build. We end up with lots of supurious
+# warnings of the form "cast increases required alignment of target type".
+# Some legitimate warnings can be fixed by adding an intermediate cast to
+# (void*), but we get others in rts/sm/GCUtils.c concerning the gct var
+# that look innocuous to me. We could enable this again once we deprecate
+# support for registerised builds on this arch. -- BL 2010/02/03
+# WARNING_OPTS += -Wcast-align
+
STANDARD_OPTS += -Iincludes -Irts
# COMPILING_RTS is only used when building Win32 DLL support.
STANDARD_OPTS += -DCOMPILING_RTS
# On Windows:
rts/win32/ConsoleHandler_CC_OPTS += -w
rts/win32/ThrIOManager_CC_OPTS += -w
-rts/win32/Ticker_CC_OPTS += -w
# The above warning supression flags are a temporary kludge.
# While working on this module you are encouraged to remove it and fix
# any warnings in the module. See
rts_dist_S_SRCS = $(rts_S_SRCS)
rts_dist_C_FILES = $(rts_C_SRCS) $(rts_thr_EXTRA_C_SRCS) $(rts_S_SRCS)
+# Hack: we define every way-related option here, so that we get (hopefully)
+# a superset of the dependencies. To do this properly, we should generate
+# a different set of dependencies for each way. Further hack: PROFILING an
+
+# TICKY_TICKY can't be used together, so we omit TICKY_TICKY for now.
+rts_dist_MKDEPENDC_OPTS += -DPROFILING -DTHREADED_RTS -DDEBUG
+
ifeq "$(HaveDtrace)" "YES"
rts_dist_MKDEPENDC_OPTS += -Irts/dist/build
# -----------------------------------------------------------------------------
# build the static lib containing the C main symbol
+ifneq "$(BINDIST)" "YES"
rts/dist/build/libHSrtsmain.a : rts/dist/build/Main.o
"$(AR)" $(AR_OPTS) $(EXTRA_AR_ARGS) $@ $<
+endif
# -----------------------------------------------------------------------------
# The RTS package config
# -----------------------------------------------------------------------------
# installing
-install : install_rts
-
-.PHONY: install_rts
-install_rts:
- $(INSTALL_DIR) "$(DESTDIR)$(ghclibdir)"
- $(INSTALL_DIR) "$(DESTDIR)$(ghclibdir)/include"
- "$(CP)" $(ALL_RTS_LIBS) "$(DESTDIR)$(ghclibdir)"
+INSTALL_LIBS += $(ALL_RTS_LIBS)
# -----------------------------------------------------------------------------
# cleaning