[project @ 2000-11-07 10:20:03 by simonmar]
authorsimonmar <unknown>
Tue, 7 Nov 2000 10:20:03 +0000 (10:20 +0000)
committersimonmar <unknown>
Tue, 7 Nov 2000 10:20:03 +0000 (10:20 +0000)
Merge before-ghci -> before-ghci-branch-merged in the non-ghc parts of
the tree.

aclocal.m4
configure.in
mk/config.mk.in
mk/suffix.mk
mk/target.mk

index 8e662fe..4ebb5ff 100644 (file)
@@ -1,4 +1,4 @@
-dnl $Id: aclocal.m4,v 1.58 2000/11/02 14:27:01 simonmar Exp $
+dnl $Id: aclocal.m4,v 1.59 2000/11/07 10:20:03 simonmar Exp $
 dnl 
 dnl Extra autoconf macros for the Glasgow fptools
 dnl
 dnl 
 dnl Extra autoconf macros for the Glasgow fptools
 dnl
@@ -436,7 +436,7 @@ main()
 {
   FILE *f=fopen("conftestval", "w");
   if (!f) exit(1);
 {
   FILE *f=fopen("conftestval", "w");
   if (!f) exit(1);
-  fprintf(f, "%d\n", offsetof(struct { char c; $1 ty;},ty));
+  fprintf(f, "%d", offsetof(struct { char c; $1 ty;},ty));
   exit(0);
 }],
 AC_CV_NAME=`cat conftestval`,
   exit(0);
 }],
 AC_CV_NAME=`cat conftestval`,
@@ -820,7 +820,7 @@ dnl The variable LIBM (which is not an output variable by default) is
 dnl set to a value which is suitable for use in a Makefile (for example,
 dnl in make's LOADLIBES macro) provided you AC_SUBST it first.
 dnl
 dnl set to a value which is suitable for use in a Makefile (for example,
 dnl in make's LOADLIBES macro) provided you AC_SUBST it first.
 dnl
-dnl @version 0.01 $Id: aclocal.m4,v 1.58 2000/11/02 14:27:01 simonmar Exp $
+dnl @version 0.01 $Id: aclocal.m4,v 1.59 2000/11/07 10:20:03 simonmar Exp $
 dnl @author Matthew D. Langston <langston@SLAC.Stanford.EDU>
 
 # FPTOOLS_CHECK_LIBM - check for math library
 dnl @author Matthew D. Langston <langston@SLAC.Stanford.EDU>
 
 # FPTOOLS_CHECK_LIBM - check for math library
@@ -908,7 +908,7 @@ dnl Please note that as the ac_opengl macro and the toy example evolves,
 dnl the version number increases, so you may have to adjust the above
 dnl URL accordingly.
 dnl
 dnl the version number increases, so you may have to adjust the above
 dnl URL accordingly.
 dnl
-dnl @version 0.01 $Id: aclocal.m4,v 1.58 2000/11/02 14:27:01 simonmar Exp $
+dnl @version 0.01 $Id: aclocal.m4,v 1.59 2000/11/07 10:20:03 simonmar Exp $
 dnl @author Matthew D. Langston <langston@SLAC.Stanford.EDU>
 
 AC_DEFUN(FPTOOLS_HAVE_OPENGL,
 dnl @author Matthew D. Langston <langston@SLAC.Stanford.EDU>
 
 AC_DEFUN(FPTOOLS_HAVE_OPENGL,
index b008248..fbb093d 100644 (file)
@@ -183,7 +183,7 @@ i[[3456]]86-*-solaris2*)
         HostVendor_CPP='unknown'
         HostOS_CPP='solaris2'
         ;;
         HostVendor_CPP='unknown'
         HostOS_CPP='solaris2'
         ;;
-i[[3456]]86-*-cygwin32*)
+i[[3456]]86-*-cygwin*)
        HostPlatform=i386-unknown-cygwin32 # hack again
        TargetPlatform=i386-unknown-cygwin32
        BuildPlatform=i386-unknown-cygwin32
        HostPlatform=i386-unknown-cygwin32 # hack again
        TargetPlatform=i386-unknown-cygwin32
        BuildPlatform=i386-unknown-cygwin32
@@ -840,6 +840,30 @@ FPTOOLS_CHECK_LIB_NOWARN(dld, shl_load)
 FPTOOLS_CHECK_LIB_NOWARN(m, atan)
 
 dnl --------------------------------------------------
 FPTOOLS_CHECK_LIB_NOWARN(m, atan)
 
 dnl --------------------------------------------------
+dnl * test for GTK+
+dnl --------------------------------------------------
+
+AC_PATH_PROGS(GTK_CONFIG, gtk-config gtk12-config)
+if test "$GTK_CONFIG" != ""; then
+   AC_CACHE_CHECK([for version of GTK+], fptools_cv_gtk_version, [
+       fptools_cv_gtk_version=`$GTK_CONFIG --version`
+    ])
+    GTK_VERSION=$fptools_cv_gtk_version
+else
+    GTK_VERSION=
+fi
+
+case $fptools_cv_gtk_version in
+  1.[[23]].*) ;;
+  *) AC_MSG_WARN([GTK+ not usable; need at least version 1.2])
+     GTK_CONFIG=
+     ;;
+esac
+
+AC_SUBST(GTK_CONFIG)
+AC_SUBST(GTK_VERSION)
+
+dnl --------------------------------------------------
 dnl * Miscellaneous feature tests
 dnl --------------------------------------------------
 
 dnl * Miscellaneous feature tests
 dnl --------------------------------------------------
 
index b83135e..146addc 100644 (file)
@@ -218,8 +218,8 @@ GhcLibHcOpts=-O
 
 # Win32 only: Enable the RTS and libraries to be built as DLLs
 # Don't split object files for libs if we're building DLLs
 
 # Win32 only: Enable the RTS and libraries to be built as DLLs
 # Don't split object files for libs if we're building DLLs
-EnableWin32DLLs=@EnableWin32DLLs@
-ifeq "$(EnableWin32DLLs)" "YES"
+DLLized=@EnableWin32DLLs@
+ifeq "$(DLLized)" "YES"
 SplitObjs=NO
 else
 SplitObjs=YES
 SplitObjs=NO
 else
 SplitObjs=YES
@@ -246,6 +246,9 @@ StripLibraries=NO
 GhcRtsHcOpts=-O2
 GhcRtsCcOpts=-O2 -optc-fomit-frame-pointer
 
 GhcRtsHcOpts=-O2
 GhcRtsCcOpts=-O2 -optc-fomit-frame-pointer
 
+# Include the front panel code?  Needs GTK+.
+GhcRtsWithFrontPanel = NO
+
 ################################################################################
 #
 #              hslibs project
 ################################################################################
 #
 #              hslibs project
@@ -261,7 +264,7 @@ GhcRtsCcOpts=-O2 -optc-fomit-frame-pointer
 HsLibsFor      = ghc
 
 # hslibs for GHC also uses the following variables (defined above):
 HsLibsFor      = ghc
 
 # hslibs for GHC also uses the following variables (defined above):
-#   GhcLibWays, GhcLibHcOpts, GhcLibToolsHcOpts, EnableWin32DLLs, StripLibraries
+#   GhcLibWays, GhcLibHcOpts, GhcLibToolsHcOpts, DLLized, StripLibraries
 
 # Haskell compiler options for tools in hslibs
 GhcLibToolsHcOpts=-O
 
 # Haskell compiler options for tools in hslibs
 GhcLibToolsHcOpts=-O
@@ -430,7 +433,7 @@ endif
 ifeq "$(strip $(mandir))" ""
 mandir         = $(prefix)/man
 endif
 ifeq "$(strip $(mandir))" ""
 mandir         = $(prefix)/man
 endif
+
 
 ################################################################################
 #
 
 ################################################################################
 #
@@ -557,6 +560,12 @@ LibGmp             = @LibGmp@
 HaveRegex      = @HaveRegex@
 
 #-----------------------------------------------------------------------------
 HaveRegex      = @HaveRegex@
 
 #-----------------------------------------------------------------------------
+# GTK+
+
+GTK_CONFIG             = @GTK_CONFIG@
+GTK_VERSION            = @GTK_VERSION@
+
+#-----------------------------------------------------------------------------
 # Flex
 
 FLEX                   = @LEX@
 # Flex
 
 FLEX                   = @LEX@
@@ -789,10 +798,6 @@ WAY_mp_HC_OPTS=-parallel
 WAY_mg_NAME=GranSim
 WAY_mg_HC_OPTS=-gransim
 
 WAY_mg_NAME=GranSim
 WAY_mg_HC_OPTS=-gransim
 
-# Way `dll': 
-WAY_dll_NAME=Win32 DLLs
-WAY_dll_HC_OPTS=-dll
-
 #
 # Add user-way configurations here:
 #
 #
 # Add user-way configurations here:
 #
index 52c2d21..0849ba4 100644 (file)
@@ -34,20 +34,20 @@ endif
        $(HC_PRE_OPTS)
        $(HC) $(HC_OPTS) -c $< -o $@ -osuf $(subst .,,$(suffix $@))
        $(HC_POST_OPTS)
        $(HC_PRE_OPTS)
        $(HC) $(HC_OPTS) -c $< -o $@ -osuf $(subst .,,$(suffix $@))
        $(HC_POST_OPTS)
-                        
+
 %.$(way_)o : %.lhs      
        $(HC_PRE_OPTS)
        $(HC) $(HC_OPTS) -c $< -o $@ -osuf $(subst .,,$(suffix $@))
        $(HC_POST_OPTS)
 %.$(way_)o : %.lhs      
        $(HC_PRE_OPTS)
        $(HC) $(HC_OPTS) -c $< -o $@ -osuf $(subst .,,$(suffix $@))
        $(HC_POST_OPTS)
-                        
+
 %.$(way_)hc : %.lhs     
        $(RM) $@
        $(HC) $(HC_OPTS) -C $< -o $@
 %.$(way_)hc : %.lhs     
        $(RM) $@
        $(HC) $(HC_OPTS) -C $< -o $@
-                        
+
 %.$(way_)hc : %.hs      
        $(RM) $@
        $(HC) $(HC_OPTS) -C $< -o $@
 %.$(way_)hc : %.hs      
        $(RM) $@
        $(HC) $(HC_OPTS) -C $< -o $@
-                        
+
 %.$(way_)o : %.$(way_)hc 
        $(HC_PRE_OPTS)
        $(HC) $(HC_OPTS) -c $< -o $@ -osuf $(subst .,,$(suffix $@))
 %.$(way_)o : %.$(way_)hc 
        $(HC_PRE_OPTS)
        $(HC) $(HC_OPTS) -c $< -o $@ -osuf $(subst .,,$(suffix $@))
@@ -238,6 +238,6 @@ endif
 # The default is to use the GNU resource compiler.
 #
 
 # The default is to use the GNU resource compiler.
 #
 
-%.o : %.rc
+%.$(way_)o : %.$(way_)rc
        @$(RM) $@
        windres $< $@
        @$(RM) $@
        windres $< $@
index 45ee5dd..0a64f06 100644 (file)
@@ -50,7 +50,7 @@
 #
 # (b) when SUBDIRS is empty,
 #     for each "multi-way-target" <t>
 #
 # (b) when SUBDIRS is empty,
 #     for each "multi-way-target" <t>
-#     calls "make -way=w <t>" for each w in $(WAYS)
+#     calls "make way=w <t>" for each w in $(WAYS)
 #
 #     This has the effect of making the standard target
 #     in each of the specified ways (as well as in the normal way
 #
 #     This has the effect of making the standard target
 #     in each of the specified ways (as well as in the normal way
@@ -304,10 +304,30 @@ endif
 #----------------------------------------
 #      Libraries/archives
 
 #----------------------------------------
 #      Libraries/archives
 
+ifeq "$(IS_CBITS_LIB)" "YES"
+_cbits := _cbits
+endif
+
+ifneq "$(HSLIB)" ""
+LIBRARY = libHS$(HSLIB)$(_cbits)$(_way).a
+ifeq "$(LIBOBJS)" ""
+  ifneq "$(IS_CBITS_LIB)" "YES"
+  LIBOBJS = $(HS_OBJS)
+  else
+  LIBOBJS = $(C_OBJS)
+  endif
+endif
+ifneq "$(IS_CBITS_LIB)" ""
+CC = $(HC)
+override datadir:=$(libdir)/includes
+INSTALL_DATAS += Hs$(shell perl -e 'print ucfirst "$(HSLIB)"').h
+SRC_CC_OPTS += -I$(GHC_INCLUDE_DIR) -I$(GHC_RUNTIME_DIR)
+endif
+endif
+
 ifneq "$(LIBRARY)" ""
 all :: $(LIBRARY)
 
 ifneq "$(LIBRARY)" ""
 all :: $(LIBRARY)
 
-
 define BUILD_LIB
 $(RM) $@
 $(AR) $(AR_OPTS) $@ $(STUBOBJS) $(LIBOBJS)
 define BUILD_LIB
 $(RM) $@
 $(AR) $(AR_OPTS) $@ $(STUBOBJS) $(LIBOBJS)
@@ -383,10 +403,41 @@ endif
 #----------------------------------------
 #      Building Win32 DLLs
 #
 #----------------------------------------
 #      Building Win32 DLLs
 #
-ifeq "$(way)" "dll"
+
+ifeq "$(DLLized)" "YES"
+
+ifneq "$(HSLIB)" ""
+
+SRC_BLD_DLL_OPTS += --export-all --output-def=HS$(HSLIB)$(_cbits)$(_way).def DllVersionInfo.$(way_)o
+ifneq "$(HSLIB)" "rts"
+SRC_BLD_DLL_OPTS += -lHSstd_cbits_imp -L$(GHC_LIB_DIR)/std/cbits
+SRC_BLD_DLL_OPTS += -lHSrts_$(way_)imp -L$(GHC_RUNTIME_DIR)
+ifneq "$(HSLIB)" "std"
+  ifeq "$(IS_CBITS_LIB)" ""
+  SRC_BLD_DLL_OPTS += -lHSstd_$(way_)imp -L$(GHC_LIB_DIR)/std 
+  endif
+endif
+endif
+SRC_BLD_DLL_OPTS += -lgmp -L. -L$(GHC_RUNTIME_DIR)/gmp
+ifeq "$(IS_CBITS_LIB)" ""
+SRC_BLD_DLL_OPTS += $(patsubst %,-lHS%_$(way_)imp, $(HSLIB_DEPS))
+SRC_BLD_DLL_OPTS += $(patsubst %,-L../%, $(HSLIB_DEPS))
+endif
+ifneq "$(HAS_CBITS)" ""
+SRC_BLD_DLL_OPTS += -lHS$(HSLIB)_cbits_imp -Lcbits
+endif
+SRC_BLD_DLL_OPTS += -lwsock32 -lwinmm
+
+endif # HSLIB != ""
+
+SplitObjs = NO 
+
+ifneq "$(LIBRARY)" ""
+
+all :: DllVersionInfo.$(way_)o
 
 ifeq "$(DLL_NAME)" ""
 
 ifeq "$(DLL_NAME)" ""
-DLL_NAME = $(patsubst %.a, %.dll, $(subst lib,,$(LIBRARY)))
+DLL_NAME = $(patsubst %.a,%.dll,$(subst lib,,$(LIBRARY)))
 endif
 
 ifneq "$(DLL_NAME)" ""
 endif
 
 ifneq "$(DLL_NAME)" ""
@@ -396,12 +447,14 @@ endif
 all :: $(DLL_NAME)
 
 ifeq "$(DLL_IMPLIB_NAME)" ""
 all :: $(DLL_NAME)
 
 ifeq "$(DLL_IMPLIB_NAME)" ""
-DLL_IMPLIB_NAME = $(patsubst %.a, %_imp.a, $(LIBRARY))
+DLL_IMPLIB_NAME = $(patsubst %.a,%_imp.a,$(LIBRARY))
 endif
 
 $(DLL_NAME) :: $(LIBRARY)
        $(BLD_DLL) --output-lib $(DLL_IMPLIB_NAME) -o $(DLL_NAME) $(LIBRARY) $(BLD_DLL_OPTS)
 endif
 
 $(DLL_NAME) :: $(LIBRARY)
        $(BLD_DLL) --output-lib $(DLL_IMPLIB_NAME) -o $(DLL_NAME) $(LIBRARY) $(BLD_DLL_OPTS)
-endif
+endif # LIBRARY != ""
+
+endif # DLLized
 
 #
 # Version information is baked into a DLL by having the DLL include DllVersionInfo.o.
 
 #
 # Version information is baked into a DLL by having the DLL include DllVersionInfo.o.
@@ -409,7 +462,7 @@ endif
 # (both are given sensible defaults though.)
 #
 # Note: this will not work as expected with Cygwin B20.1; you need a more recent
 # (both are given sensible defaults though.)
 #
 # Note: this will not work as expected with Cygwin B20.1; you need a more recent
-#       snapshot of binutils (to pick up windres bugfixes.)
+#       version of binutils (to pick up windres bugfixes.)
 
 ifndef DLL_VERSION
 DLL_VERSION=$(ProjectVersion)
 
 ifndef DLL_VERSION
 DLL_VERSION=$(ProjectVersion)
@@ -439,14 +492,14 @@ endif
 # Little bit of lo-fi mangling to get at the right set of settings depending
 # on whether we're generating the VERSIONINFO for a DLL or EXE
 # 
 # Little bit of lo-fi mangling to get at the right set of settings depending
 # on whether we're generating the VERSIONINFO for a DLL or EXE
 # 
-DLL_OR_EXE=$(subst VersionInfo.rc,,$@)
+DLL_OR_EXE=$(subst VersionInfo.$(way_)rc,,$@)
 VERSION_FT=$(subst Dll, 0x2L, $(subst Exe, 0x1L, $(DLL_OR_EXE)))
 VERSION_RES_NAME=$(subst Exe,$(EXE_VERSION_NAME), $(subst Dll, $(DLL_VERSION_NAME),$(DLL_OR_EXE)))
 VERSION_RES=$(subst Exe,$(EXE_VERSION), $(subst Dll, $(DLL_VERSION),$(DLL_OR_EXE)))
 VERSION_DESC=$(subst Exe,$(EXE_DESCRIPTION), $(subst Dll, $(DLL_DESCRIPTION),$(DLL_OR_EXE)))
 
 VERSION_FT=$(subst Dll, 0x2L, $(subst Exe, 0x1L, $(DLL_OR_EXE)))
 VERSION_RES_NAME=$(subst Exe,$(EXE_VERSION_NAME), $(subst Dll, $(DLL_VERSION_NAME),$(DLL_OR_EXE)))
 VERSION_RES=$(subst Exe,$(EXE_VERSION), $(subst Dll, $(DLL_VERSION),$(DLL_OR_EXE)))
 VERSION_DESC=$(subst Exe,$(EXE_DESCRIPTION), $(subst Dll, $(DLL_DESCRIPTION),$(DLL_OR_EXE)))
 
-DllVersionInfo.rc ExeVersionInfo.rc:
-       $(RM) DllVersionInfo.rc
+DllVersionInfo.$(way_)rc ExeVersionInfo.$(way_)rc:
+       $(RM) DllVersionInfo.$(way_)rc
        echo "1 VERSIONINFO"                > $@
        echo "FILEVERSION 1,0,0,1"         >> $@
        echo "PRODUCTVERSION 1,0,0,1"      >> $@
        echo "1 VERSIONINFO"                > $@
        echo "FILEVERSION 1,0,0,1"         >> $@
        echo "PRODUCTVERSION 1,0,0,1"      >> $@
@@ -525,7 +578,7 @@ all :: $(SCRIPT_PROG)
 # platforms, we prepend #!$(INTERP)  -- SOF 6/97
 # 
 
 # platforms, we prepend #!$(INTERP)  -- SOF 6/97
 # 
 
-$(SCRIPT_PROG) :: $(SCRIPT_OBJS)
+$(SCRIPT_PROG) : $(SCRIPT_OBJS)
        $(RM) $@
        @echo Creating $@...
 ifeq "$(INTERP)" "perl"
        $(RM) $@
        @echo Creating $@...
 ifeq "$(INTERP)" "perl"
@@ -618,6 +671,19 @@ install-dirs ::
 # within the various install targets instead.
 #install:: install-dirs
 
 # within the various install targets instead.
 #install:: install-dirs
 
+# Install libraries automatically
+ifneq "$(LIBRARY)" ""
+INSTALL_LIBS  += $(LIBRARY)
+ifeq "$(DLLized)" "YES"
+INSTALL_PROGS += $(DLL_NAME)
+else
+ifeq "$(DLLized)" "YES"
+INSTALL_LIBS += $(patsubst %.a,%_imp.a, $(LIBRARY))
+endif
+endif
+INSTALL_DATAS += $(HS_IFACES)
+endif
+
 ifneq "$(INSTALL_PROGS)" ""
 
 #
 ifneq "$(INSTALL_PROGS)" ""
 
 #
@@ -630,10 +696,10 @@ ifneq "$(INSTALL_PROGS)" ""
 # $(exeext).
 # 
 # This is bit of a pain to express since GNU make doesn't have
 # $(exeext).
 # 
 # This is bit of a pain to express since GNU make doesn't have
-# something like $(if ...), but possible using $(subst ..)
-# [Aside: I added support for $(if ..) to my local copy of GNU
+# something like $(if ...), but possible using $(subst ...)
+# [Aside: I added support for $(if ...) to my local copy of GNU
 # make at one stage, perhaps I should propagate the patch to
 # make at one stage, perhaps I should propagate the patch to
-# the GNU make maintainers..] 
+# the GNU make maintainers...] 
 #
 INSTALL_PROGS := $(foreach p, $(INSTALL_PROGS), $(addsuffix $(subst _,,$(subst __,$(exeext),_$(suffix $(p))_)), $(basename $(p))))
 
 #
 INSTALL_PROGS := $(foreach p, $(INSTALL_PROGS), $(addsuffix $(subst _,,$(subst __,$(exeext),_$(suffix $(p))_)), $(basename $(p))))