From c6464b879709466d05ce76cab31544d893fc8ba2 Mon Sep 17 00:00:00 2001 From: "Janet B. Anderson" Date: Thu, 3 Jul 2003 16:17:38 +0000 Subject: [PATCH] Added loadable library definitions and rules --- configure/CONFIG_ADDONS | 18 +++++++++++++ configure/CONFIG_COMMON | 1 + configure/RULES_BUILD | 25 +++++++++++++------ configure/os/CONFIG.Common.UnixCommon | 5 ++++ configure/os/CONFIG.Common.hpux-parisc | 2 ++ configure/os/CONFIG.darwin-ppc.darwin-ppc | 4 +++ .../os/CONFIG.hpux-parisc-gnu.hpux-parisc-gnu | 1 + configure/os/CONFIG.hpux-parisc.hpux-parisc | 1 + configure/os/CONFIG.linux-x86.linux-x86 | 6 ++--- configure/os/CONFIG.osf-alpha.osf-alpha | 1 + ...CONFIG.solaris-sparc-gnu.solaris-sparc-gnu | 1 + .../os/CONFIG.solaris-sparc.solaris-sparc | 5 ++-- .../os/CONFIG.solaris-x86-gnu.solaris-x86-gnu | 4 +-- configure/os/CONFIG.solaris-x86.solaris-x86 | 7 +++--- configure/os/CONFIG.sun4-68k.sun4-68k | 1 + ...CONFIG.win32-x86-borland.win32-x86-borland | 2 ++ configure/os/CONFIG.win32-x86.win32-x86 | 2 ++ configure/tools/convertRelease.pl | 2 +- configure/tools/makeMakefileInclude.pl | 22 ++++++++++++++++ 19 files changed, 89 insertions(+), 21 deletions(-) diff --git a/configure/CONFIG_ADDONS b/configure/CONFIG_ADDONS index 30185b5e2..090192b48 100644 --- a/configure/CONFIG_ADDONS +++ b/configure/CONFIG_ADDONS @@ -57,6 +57,8 @@ # LIBRARY products to build and install # LIBRARY_HOST products to build and install # LIBRARY_IOC products to build and install +# LOADABLE_LIBRARY module to build and install +# LOADABLE_LIBRARY_HOST module to build and install # SCRIPTS scripts and install # SCRIPTS_HOST host system scripts to install # SCRIPTS_IOC ioc system scripts to install @@ -326,6 +328,22 @@ LIBRARY_HOST+=$(LIBRARY_HOST_DEFAULT) endif endif +ifneq ($(strip $(LOADABLE_LIBRARY_$(OS_CLASS))),) +LOADABLE_LIBRARY+=$(subst -nil-,,$(LOADABLE_LIBRARY_$(OS_CLASS))) +else +ifneq (,$(strip $(LOADABLE_LIBRARY_DEFAULT))) +LOADABLE_LIBRARY+=$(LOADABLE_LIBRARY_DEFAULT) +endif +endif + +ifneq ($(strip $(LOADABLE_LIBRARY_HOST_$(OS_CLASS))),) +LOADABLE_LIBRARY_HOST+=$(subst -nil-,,$(LOADABLE_LIBRARY_HOST_$(OS_CLASS))) +else +ifneq (,$(strip $(LOADABLE_LIBRARY_HOST_DEFAULT))) +LOADABLE_LIBRARY_HOST+=$(LOADABLE_LIBRARY_HOST_DEFAULT) +endif +endif + ifneq ($(strip $(PROD_LIBS_$(OS_CLASS))),) PROD_LIBS += $(subst -nil-,,$(PROD_LIBS_$(OS_CLASS))) else diff --git a/configure/CONFIG_COMMON b/configure/CONFIG_COMMON index fd7dee759..0d98b6f7d 100644 --- a/configure/CONFIG_COMMON +++ b/configure/CONFIG_COMMON @@ -319,6 +319,7 @@ INSTALL_PROD= $(PRODNAME:%= $(INSTALL_BIN)/%) INSTALL_LIBS= $(LIBNAME:%=$(INSTALL_LIB)/%) INSTALL_MUNCHS= $(MUNCHNAME:%=$(INSTALL_BIN)/%) INSTALL_SHRLIBS= $(SHRLIBNAME:%=$(INSTALL_SHRLIB)/%) +INSTALL_LOADABLE_SHRLIBS= $(LOADABLE_SHRLIBNAME:%=$(INSTALL_SHRLIB)/%) INSTALL_DLL_LINK_LIBS=$(DLL_LINK_LIBNAME:%=$(INSTALL_LIB)/%) INSTALL_TCLLIBS=$(TCLLIBNAME:%=$(INSTALL_TCLLIB)/%) INSTALL_TCLINDEX=$(TCLINDEX:%=$(INSTALL_TCLLIB)/%) diff --git a/configure/RULES_BUILD b/configure/RULES_BUILD index 5180cf472..a9564a6e3 100644 --- a/configure/RULES_BUILD +++ b/configure/RULES_BUILD @@ -36,6 +36,7 @@ include $(CONFIG)/CONFIG_ADDONS ifeq ($(findstring Host,$(VALID_BUILDS)),Host) LIBRARY += $(LIBRARY_HOST) +LOADABLE_LIBRARY += $(LOADABLE_LIBRARY_HOST) OBJS += $(OBJS_HOST) PROD += $(PROD_HOST) SCRIPTS += $(SCRIPTS_HOST) @@ -74,15 +75,15 @@ endif #--------------------------------------------------------------- # Create included Makefile for prod,testprod, and library targets -ifneq (,$(strip $(PROD) $(TESTPROD) $(LIBRARY))) +ifneq (,$(strip $(PROD) $(TESTPROD) $(LIBRARY) $(LOADABLE_LIBRARY))) MakefileInclude: ../Makefile @$(RM) $@ - @$(PERL) $(TOOLS)/makeMakefileInclude.pl $(PROD) $(TESTPROD) $(LIBRARY) $@ + @$(PERL) $(TOOLS)/makeMakefileInclude.pl $(PROD) $(TESTPROD) $(LIBRARY) $(LOADABLE_LIBRARY) $@ -include MakefileInclude -endif # PROD, TESTPROD, or LIBRARY defined +endif # PROD, TESTPROD, LIBRARY, or LOADABLE_LIBRARY defined #--------------------------------------------------------------- # Products and Object libraries @@ -93,10 +94,10 @@ PRODTARGETS += $(PRODNAME) $(MUNCHNAME) $(CTDT_SRCS) $(CTDT_OBJS) $(NMS) # Libraries # -LIBTARGETS += $(LIBNAME) -LIBTARGETS += $(INSTALL_LIBS) -LIBTARGETS += $(SHRLIBNAME) $(INSTALL_SHRLIBS) \ - $(DLL_LINK_LIBNAME) $(INSTALL_DLL_LINK_LIBS) +LIBTARGETS += $(LIBNAME) $(INSTALL_LIBS) \ + $(SHRLIBNAME) $(INSTALL_SHRLIBS) \ + $(DLL_LINK_LIBNAME) $(INSTALL_DLL_LINK_LIBS) \ + $(LOADABLE_SHRLIBNAME) $(INSTALL_LOADABLE_SHRLIBS) #--------------------------------------------------------------- ifneq ($(CONFIG),$(TOP)/configure) @@ -137,7 +138,7 @@ clean:: @echo "Cleaning" @$(RM) *.i *$(OBJ) *.a $(TESTPRODNAME) $(LIBNAME) $(SHRLIBNAME)\ $(INC) *$(RES) $(TARGETS) $(DLL_LINK_LIBNAME) $(TDS) \ - *.out MakefileInclude \ + *.out MakefileInclude $(LOADABLE_SHRLIBNAME) \ $(COMMON_INC) $(HDEPENDS_FILES) $(PRODTARGETS) ifdef BAF @$(RM) $(PROD_BAF) $(LIB_BAF) *$(BOF) @@ -268,6 +269,10 @@ $(SHRLIBNAME):$(LIB_PREFIX)%$(SHRLIB_SUFFIX): $(LIBRARY_OBJS) $(LIBRARY_RESS) $( @$(RM) $@ $(LINK.shrlib) +$(LOADABLE_SHRLIBNAME):$(LOADABLE_SHRLIB_PREFIX)%$(LOADABLE_SHRLIB_SUFFIX): $(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS) + @$(RM) $@ + $(LINK.loadable_shrlib) + # C++ munching for VxWorks %.nm : %$(EXE) @$(RM) $@ @@ -340,6 +345,10 @@ $(INSTALL_TCLLIB)/%: ../% @$(INSTALL) -d -m 555 $< $(INSTALL_TCLLIB) endif +$(INSTALL_LOADABLE_SHRLIBS): $(INSTALL_SHRLIB)/%: % + @echo "Installing loadable shared library $@" + @$(INSTALL) -d -m 555 $< $(INSTALL_SHRLIB) + $(INSTALL_CONFIG)/%: % @echo "Installing config file $@" @$(INSTALL) -d -m 644 $< $(@D) diff --git a/configure/os/CONFIG.Common.UnixCommon b/configure/os/CONFIG.Common.UnixCommon index 40ec81014..e003e6366 100644 --- a/configure/os/CONFIG.Common.UnixCommon +++ b/configure/os/CONFIG.Common.UnixCommon @@ -24,6 +24,8 @@ OBJ = .o LIB_PREFIX = lib LIB_SUFFIX = .a SHRLIB_SUFFIX = .so$(addprefix .,$(SHRLIB_VERSION)) +LOADABLE_SHRLIB_SUFFIX = .so$(addprefix .,$(SHRLIB_VERSION)) +LOADABLE_SHRLIB_PREFIX = #------------------------------------------------------- # names of libraries to build @@ -31,6 +33,7 @@ SHRLIB_SUFFIX = .so$(addprefix .,$(SHRLIB_VERSION)) LIBNAME = $(BUILD_LIBRARY:%=$(LIB_PREFIX)%$(LIB_SUFFIX)) # -> lib.so. SHRLIBNAME_YES = $(BUILD_LIBRARY:%=$(LIB_PREFIX)%$(SHRLIB_SUFFIX)) +LOADABLE_SHRLIBNAME = $(LOADABLE_BUILD_LIBRARY:$(LOADABLE_SHRLIB_PREFIX)%=%$(LOADABLE_SHRLIB_SUFFIX)) #------------------------------------------------------- # shrlib: DEPLIBS, LDFLAGS, and LDLIBS definitions @@ -78,6 +81,8 @@ LINK.cpp = $(CCC) -o $@ $(STATIC_LDFLAGS) $(PRODDIR_LDFLAGS) $(LDFLAGS) LINK.cpp += $(PROD_LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(PROD_LDLIBS) LINK.shrlib = $(CCC) -o $@ $(SHRLIB_LDFLAGS) $(SHRLIBDIR_LDFLAGS) $(LDFLAGS) LINK.shrlib += $(LIB_LDFLAGS) $(LIBRARY_LD_OBJS) $(LIBRARY_LD_RESS) $(SHRLIB_LDLIBS) +LINK.loadable_shrlib = $(CCC) -o $@ $(LOADABLE_SHRLIB_LDFLAGS) $(SHRLIBDIR_LDFLAGS) $(LDFLAGS) +LINK.loadable_shrlib += $(LIB_LDFLAGS) $(LIBRARY_LD_OBJS) $(LIBRARY_LD_RESS) $(SHRLIB_LDLIBS) #-------------------------------------------------- # Operating system definitions diff --git a/configure/os/CONFIG.Common.hpux-parisc b/configure/os/CONFIG.Common.hpux-parisc index 9c4e3762a..07a29c025 100644 --- a/configure/os/CONFIG.Common.hpux-parisc +++ b/configure/os/CONFIG.Common.hpux-parisc @@ -21,6 +21,8 @@ OP_SYS_CFLAGS = -D_HPUX_SOURCE OP_SYS_CXXFLAGS = SHRLIB_SUFFIX = .sl$(addprefix .,$(SHRLIB_VERSION)) +LOADABLE_SHRLIB_SUFFIX = .sl$(addprefix .,$(SHRLIB_VERSION)) +LOADABLE_SHRLIB_PREFIX = # Set runtime path for shared libraries empty:= # trick from the make docs... diff --git a/configure/os/CONFIG.darwin-ppc.darwin-ppc b/configure/os/CONFIG.darwin-ppc.darwin-ppc index 69d24afe5..20a3bd7de 100644 --- a/configure/os/CONFIG.darwin-ppc.darwin-ppc +++ b/configure/os/CONFIG.darwin-ppc.darwin-ppc @@ -24,6 +24,10 @@ SHRLIB_LDFLAGS = -dynamiclib -flat_namespace -undefined suppress \ SHRLIB_SUFFIX = .$(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION).dylib SHRLIB_VERSION = $(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION) +LOADABLE_SHRLIB_LDFLAGS = -bundle -flat_namespace -undefined suppress +LOADABLE_SHRLIB_SUFFIX = .so +LOADABLE_SHRLIB_PREFIX = + # # Position-independent code is the default on Darwin. # diff --git a/configure/os/CONFIG.hpux-parisc-gnu.hpux-parisc-gnu b/configure/os/CONFIG.hpux-parisc-gnu.hpux-parisc-gnu index 9a81cc7f7..316c31d01 100644 --- a/configure/os/CONFIG.hpux-parisc-gnu.hpux-parisc-gnu +++ b/configure/os/CONFIG.hpux-parisc-gnu.hpux-parisc-gnu @@ -27,3 +27,4 @@ USR_SYS_LIBS += pthread # C++ templates need PIC definition also in link phase SHRLIB_LDFLAGS += -shared -fPIC +LOADABLE_SHRLIB_LDFLAGS += $(SHRLIB_LDFLAGS) diff --git a/configure/os/CONFIG.hpux-parisc.hpux-parisc b/configure/os/CONFIG.hpux-parisc.hpux-parisc index 787ba5847..3bfb54784 100644 --- a/configure/os/CONFIG.hpux-parisc.hpux-parisc +++ b/configure/os/CONFIG.hpux-parisc.hpux-parisc @@ -55,3 +55,4 @@ STATIC_LDLIBS_NO = TARGET_LDFLAGS += -AA -mt SHRLIB_LDFLAGS = -b +LOADABLE_SHRLIB_LDFLAGS = $(SHRLIB_LDFLAGS) diff --git a/configure/os/CONFIG.linux-x86.linux-x86 b/configure/os/CONFIG.linux-x86.linux-x86 index 13a6cc4fc..abdbb2c34 100644 --- a/configure/os/CONFIG.linux-x86.linux-x86 +++ b/configure/os/CONFIG.linux-x86.linux-x86 @@ -14,6 +14,6 @@ GNU_DIR = /usr CC = $(GNU_BIN)/gcc CCC = $(GNU_BIN)/g++ -SHRLIB_ALLOW_UNDEFINEDS=NO -SHRLIB_LDFLAGS_NO = -z defs -SHRLIB_LDFLAGS += -shared $(SHRLIB_LDFLAGS_$(SHRLIB_ALLOW_UNDEFINEDS)) +SHRLIB_LDFLAGS += -shared -z defs +LOADABLE_SHRLIB_LDFLAGS = -shared + diff --git a/configure/os/CONFIG.osf-alpha.osf-alpha b/configure/os/CONFIG.osf-alpha.osf-alpha index b678445c4..7edd57ca4 100644 --- a/configure/os/CONFIG.osf-alpha.osf-alpha +++ b/configure/os/CONFIG.osf-alpha.osf-alpha @@ -41,6 +41,7 @@ STATIC_LDLIBS_YES= -Bdynamic STATIC_LDLIBS_NO= SHRLIB_LDFLAGS = -shared +LOADABLE_SHRLIB_LDFLAGS = $(SHRLIB_LDFLAGS) ############# ??????????? #####ACC_SFLAGS_YES= -non_shared diff --git a/configure/os/CONFIG.solaris-sparc-gnu.solaris-sparc-gnu b/configure/os/CONFIG.solaris-sparc-gnu.solaris-sparc-gnu index 5e8482b9b..31f894b33 100644 --- a/configure/os/CONFIG.solaris-sparc-gnu.solaris-sparc-gnu +++ b/configure/os/CONFIG.solaris-sparc-gnu.solaris-sparc-gnu @@ -25,4 +25,5 @@ STATIC_LDLIBS_NO= SHRLIB_LDFLAGS = -G -h $@ -z ignore -z combreloc -z lazyload SHRLIB_LDFLAGS += -z defs +LOADABLE_SHRLIB_LDFLAGS = -G -h $@ -z ignore -z combreloc -z lazyload diff --git a/configure/os/CONFIG.solaris-sparc.solaris-sparc b/configure/os/CONFIG.solaris-sparc.solaris-sparc index bd3425ab9..e80f844fe 100644 --- a/configure/os/CONFIG.solaris-sparc.solaris-sparc +++ b/configure/os/CONFIG.solaris-sparc.solaris-sparc @@ -52,9 +52,8 @@ STATIC_LDFLAGS_NO= STATIC_LDLIBS_YES= -Bdynamic STATIC_LDLIBS_NO= -SHRLIB_CFLAGS += -KPIC -SHRLIB_LDFLAGS += -G -h $@ -SHRLIB_LDFLAGS += -z defs +SHRLIB_LDFLAGS += -z defs -KPIC -G -h $@ +LOADABLE_SHRLIB_LDFLAGS += -KPIC -G -h $@ OP_SYS_LDFLAGS += -z ignore -z combreloc -z lazyload diff --git a/configure/os/CONFIG.solaris-x86-gnu.solaris-x86-gnu b/configure/os/CONFIG.solaris-x86-gnu.solaris-x86-gnu index 3ea6d9cb7..9a9e719c7 100644 --- a/configure/os/CONFIG.solaris-x86-gnu.solaris-x86-gnu +++ b/configure/os/CONFIG.solaris-x86-gnu.solaris-x86-gnu @@ -18,8 +18,8 @@ AR = ar -rc RANLIB= LD = ld -r -SHRLIB_LDFLAGS = -G -h $@ -SHRLIB_LDFLAGS += -z defs +SHRLIB_LDFLAGS = -z defs -G -h $@ +LOADABLE_SHRLIB_LDFLAGS += -G -h $@ OP_SYS_LDFLAGS = -z ignore -z combreloc -z lazyload diff --git a/configure/os/CONFIG.solaris-x86.solaris-x86 b/configure/os/CONFIG.solaris-x86.solaris-x86 index 3a7a1d792..41825c040 100644 --- a/configure/os/CONFIG.solaris-x86.solaris-x86 +++ b/configure/os/CONFIG.solaris-x86.solaris-x86 @@ -51,9 +51,8 @@ STATIC_LDFLAGS_NO= STATIC_LDLIBS_YES= -Bdynamic STATIC_LDLIBS_NO= -SHRLIB_CFLAGS += -KPIC -SHRLIB_LDFLAGS = -G -h $@ -SHRLIB_LDFLAGS += -z defs +SHRLIB_LDFLAGS = -z defs -KPIC -G -h $@ +LOADABLE_SHRLIB_LDFLAGS = -KPIC -G -h $@ -OP_SYS_LDFLAGS = -z ignore -z combreloc -z lazyload +OP_SYS_LDFLAGS = -z ignore -z combreloc -z lazyload diff --git a/configure/os/CONFIG.sun4-68k.sun4-68k b/configure/os/CONFIG.sun4-68k.sun4-68k index 475ce1379..b05451b42 100644 --- a/configure/os/CONFIG.sun4-68k.sun4-68k +++ b/configure/os/CONFIG.sun4-68k.sun4-68k @@ -45,4 +45,5 @@ STATIC_LDLIBS_YES= -Bdynamic STATIC_LDLIBS_NO= SHRLIB_LDFLAGS = -assert pure-text -h $@ +LOADABLE_SHRLIB_LDFLAGS = -assert pure-text -h $@ diff --git a/configure/os/CONFIG.win32-x86-borland.win32-x86-borland b/configure/os/CONFIG.win32-x86-borland.win32-x86-borland index a8f470618..d88d6348a 100644 --- a/configure/os/CONFIG.win32-x86-borland.win32-x86-borland +++ b/configure/os/CONFIG.win32-x86-borland.win32-x86-borland @@ -13,6 +13,8 @@ VALID_BUILDS = Host Ioc #------------------------------------------------------- +LIBRARY += $(LOADABLE_LIBRARY) + BORLAND_INC = $(BORLAND)\\include BORLAND_LIB = $(BORLAND)\\lib BORLAND_BIN = $(BORLAND)\\bin diff --git a/configure/os/CONFIG.win32-x86.win32-x86 b/configure/os/CONFIG.win32-x86.win32-x86 index fadae4bb1..98d58a992 100644 --- a/configure/os/CONFIG.win32-x86.win32-x86 +++ b/configure/os/CONFIG.win32-x86.win32-x86 @@ -16,6 +16,8 @@ PATH_FILTER = $(subst /,\\,$(1)) #------------------------------------------------------- +LIBRARY += $(LOADABLE_LIBRARY) + # # "\ " forces gnu make to keep this as one token # diff --git a/configure/tools/convertRelease.pl b/configure/tools/convertRelease.pl index 554cc3ab9..560251768 100755 --- a/configure/tools/convertRelease.pl +++ b/configure/tools/convertRelease.pl @@ -72,7 +72,7 @@ $outfile = $ARGV[0]; # Read the RELEASE file(s) $relfile = "$top/configure/RELEASE"; -die "Can't find configure/RELEASE file" unless (-r $relfile); +die "Can't find configure/RELEASE file" unless (-f $relfile); &readRelease($relfile, \%macros, \@apps); if ($hostarch) { diff --git a/configure/tools/makeMakefileInclude.pl b/configure/tools/makeMakefileInclude.pl index 5275952e7..ec13c9fd9 100755 --- a/configure/tools/makeMakefileInclude.pl +++ b/configure/tools/makeMakefileInclude.pl @@ -107,6 +107,7 @@ foreach $name ( @nameList ) { print OUT "endif\n"; print OUT "\n"; print OUT "ifeq (\$(filter ${name},\$(LIBRARY)),${name})\n"; + print OUT "ifneq (\$(filter ${name},\$(LOADABLE_LIBRARY)),${name})\n"; print OUT "ifneq (,\$(strip \$(${name}_OBJS) \$(LIBRARY_OBJS)))\n"; print OUT "BUILD_LIBRARY += ${name}\n"; print OUT "endif\n"; @@ -128,6 +129,27 @@ foreach $name ( @nameList ) { print OUT "\$(LIB_PREFIX)${name}\$(SHRLIB_SUFFIX):\$(${name}_DEPLIBS)\n"; print OUT "\$(LIB_PREFIX)${name}\$(SHRLIB_SUFFIX):\$(${name}_DLL_DEPLIBS)\n"; print OUT "endif\n"; + print OUT "endif\n"; + print OUT "ifeq (\$(filter ${name},\$(LOADABLE_LIBRARY)),${name})\n"; + print OUT "ifneq (,\$(strip \$(${name}_OBJS) \$(LIBRARY_OBJS)))\n"; + print OUT "LOADABLE_BUILD_LIBRARY += ${name}\n"; + print OUT "endif\n"; + print OUT "${name}_RESS+=\$(addsuffix \$(RES),\$(basename \$(${name}_RCS)))\n"; + print OUT "${name}_OBJSNAME+=\$(addsuffix \$(OBJ),\$(basename \$(${name}_OBJS)))\n"; + print OUT "${name}_DEPLIBS=\$(foreach lib, \$(${name}_LDLIBS),\\\n"; + print OUT " \$(firstword \$(wildcard \$(addsuffix /\$(LIB_PREFIX)\$(lib)\*,\\\n"; + print OUT " \$(\$(lib)_DIR) \$(SHRLIB_SEARCH_DIRS)))\\\n"; + print OUT " \$(addsuffix /\$(LIB_PREFIX)\$(lib)\$(LIB_SUFFIX),\\\n"; + print OUT " \$(firstword \$(\$(lib)_DIR) \$(SHRLIB_SEARCH_DIRS))\/)))\n"; + print OUT "${name}_DLL_DEPLIBS=\$(foreach lib, \$(${name}_DLL_LIBS),\\\n"; + print OUT " \$(firstword \$(wildcard \$(addsuffix /\$(LIB_PREFIX)\$(lib)\*,\\\n"; + print OUT " \$(\$(lib)_DIR) \$(SHRLIB_SEARCH_DIRS)))\\\n"; + print OUT " \$(addsuffix /\$(LIB_PREFIX)\$(lib)\$(LIB_EXT),\\\n"; + print OUT " \$(firstword \$(\$(lib)_DIR) \$(SHRLIB_SEARCH_DIRS))\/)))\n"; + print OUT "\$(LOADABLE_SHRLIB_PREFIX)${name}\$(LOADABLE_SHRLIB_SUFFIX):\$(${name}_OBJSNAME) \$(${name}_RESS)\n"; + print OUT "\$(LOADABLE_SHRLIB_PREFIX)${name}\$(LOADABLE_SHRLIB_SUFFIX):\$(${name}_DEPLIBS)\n"; + print OUT "\$(LOADABLE_SHRLIB_PREFIX)${name}\$(LOADABLE_SHRLIB_SUFFIX):\$(${name}_DLL_DEPLIBS)\n"; + print OUT "endif\n"; print OUT "\n"; } close OUT or die "Cannot close $outfile: $!";