Browse Source

* updated for new lib options

peter 27 years ago
parent
commit
129d447327
1 changed files with 45 additions and 19 deletions
  1. 45 19
      rtl/linux/makefile

+ 45 - 19
rtl/linux/makefile

@@ -37,6 +37,11 @@ CPU=i386
 #CPU=m68k
 #CPU=m68k
 endif
 endif
 
 
+# Use smartlinking ?
+ifndef SMARTLINK
+SMARTLINK=NO
+endif
+
 # Name of library ?
 # Name of library ?
 # If this is set, all units will be put in the same library.
 # If this is set, all units will be put in the same library.
 # If it is empty (default), the units will be left in separate files.
 # If it is empty (default), the units will be left in separate files.
@@ -129,9 +134,14 @@ endif
 
 
 # Define Linux Units
 # Define Linux Units
 SYSTEMPPU=syslinux$(PPUEXT)
 SYSTEMPPU=syslinux$(PPUEXT)
-OBJECTS=strings linux objpas sysutils math\
+OBJECTS=strings linux objpas sysutils math \
 	dos crt objects printer \
 	dos crt objects printer \
-	getopts errors sockets graph\
+	getopts errors sockets graph
+
+# Which units may be placed in the shared lib file
+SHAREDLIBFILES=syslinux strings linux objpas sysutils math \
+	dos crt objects printer \
+	getopts errors sockets
 
 
 # Extra Syslinux Depends
 # Extra Syslinux Depends
 ifeq ($(LINK_TO_C),YES)
 ifeq ($(LINK_TO_C),YES)
@@ -168,7 +178,7 @@ endif
 
 
 # Add Prefix and Suffixes
 # Add Prefix and Suffixes
 OBJLOADERS=$(addsuffix $(OEXT), $(LOADERS))
 OBJLOADERS=$(addsuffix $(OEXT), $(LOADERS))
-PPUOBJECTS=$(addsuffix $(PPUEXT), $(OBJECTS))
+PPUOBJECTS=$(SYSTEMPPU) $(addsuffix $(PPUEXT), $(OBJECTS))
 
 
 .PHONY : all install clean \
 .PHONY : all install clean \
 	 libs libsclean \
 	 libs libsclean \
@@ -176,12 +186,14 @@ PPUOBJECTS=$(addsuffix $(PPUEXT), $(OBJECTS))
 
 
 all : $(OBJLOADERS) $(PPUOBJECTS)
 all : $(OBJLOADERS) $(PPUOBJECTS)
 
 
-install : all
+install :
+	make clean
+	make all
 	$(MKDIR) $(UNITINSTALLDIR)
 	$(MKDIR) $(UNITINSTALLDIR)
 	$(INSTALL) *$(PPUEXT) *$(OEXT) $(UNITINSTALLDIR)
 	$(INSTALL) *$(PPUEXT) *$(OEXT) $(UNITINSTALLDIR)
 
 
 clean :
 clean :
-	-$(DEL) *$(OEXT) *$(ASMEXT) *$(PPUEXT) *.PPS log
+	-$(DEL) *.sl/ *$(OEXT) *$(ASMEXT) *$(PPUEXT) *.PPS log
 
 
 #####################################################################
 #####################################################################
 # Files
 # Files
@@ -258,8 +270,7 @@ errors$(PPUEXT) : errors.pp strings$(PPUEXT) $(SYSTEMPPU)
 dos$(PPUEXT) : $(DOSDEPS) $(SYSTEMPPU)
 dos$(PPUEXT) : $(DOSDEPS) $(SYSTEMPPU)
 	$(PP) $(OPT) dos $(REDIR)
 	$(PP) $(OPT) dos $(REDIR)
 
 
-crt$(PPUEXT) : crt.pp $(INC)/textrec.inc $(INC)/filerec.inc linux$(PPUEXT)\
-	       $(SYSTEMPPU)
+crt$(PPUEXT) : crt.pp $(INC)/textrec.inc linux$(PPUEXT) $(SYSTEMPPU)
 	$(PP) $(OPT) crt $(REDIR)
 	$(PP) $(OPT) crt $(REDIR)
 
 
 objects$(PPUEXT) : $(INC)/objects.pp objinc.inc $(SYSTEMPPU)
 objects$(PPUEXT) : $(INC)/objects.pp objinc.inc $(SYSTEMPPU)
@@ -286,22 +297,34 @@ getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMPPU)
 # Libs
 # Libs
 #####################################################################
 #####################################################################
 
 
-libs	: all libfpc$(LIBEXT)
-
-libfpc.so:
-	$(PPUMOVE) -o fpc *.ppu
+staticlib:
+	make clean
+	make all SMARTLINK=YES LIBNAME=fpc LIBTYPE=static
+
+sharedlib:
+	make clean
+	make all
+	$(PPUMOVE) -o fpc $(SHAREDLIBFILES)
+
+staticlibinstall: staticlib
+	$(MKDIR) $(STATIC_LIBINSTALLDIR)
+	$(MKDIR) $(STATIC_UNITINSTALLDIR)
+	$(INSTALLEXE) libfpc.a $(STATIC_LIBINSTALLDIR)
+	$(INSTALL) *$(PPUEXT) *.o $(STATIC_UNITINSTALLDIR)
+
+sharedlibinstall: sharedlib
+	$(MKDIR) $(SHARED_LIBINSTALLDIR)
+	$(MKDIR) $(SHARED_UNITINSTALLDIR)
+	$(INSTALLEXE) libfpc.so $(SHARED_LIBINSTALLDIR)
+	$(INSTALL) *$(PPUEXT) *.o $(SHARED_UNITINSTALLDIR)
+	ldconfig
 
 
-libfpc.a:
-	$(PPUMOVE) -s -o fpc *.ppu
+libinstall: staticlibinstall sharedlibinstall
 
 
-libinstall : libs
-	$(INSTALLEXE) libfpc$(LIBEXT) $(LIBINSTALLDIR)
-	$(INSTALL) *$(PPLEXT) $(UNITINSTALLDIR)
-	ldconfig
-	
 libsclean : clean
 libsclean : clean
 	-$(DEL) *.a *.so *$(PPLEXT)
 	-$(DEL) *.a *.so *$(PPLEXT)
 
 
+
 #####################################################################
 #####################################################################
 # Default targets
 # Default targets
 #####################################################################
 #####################################################################
@@ -310,7 +333,10 @@ include $(CFG)/makefile.def
 
 
 #
 #
 # $Log$
 # $Log$
-# Revision 1.19  1998-08-17 09:30:00  peter
+# Revision 1.20  1998-08-18 08:35:06  peter
+#   * updated for new lib options
+#
+# Revision 1.19  1998/08/17 09:30:00  peter
 #   * libtype/libname is by default off
 #   * libtype/libname is by default off
 #
 #
 # Revision 1.18  1998/08/16 10:22:57  michael
 # Revision 1.18  1998/08/16 10:22:57  michael