1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-15 23:50:44 +00:00
freebsd-ports/lang/modula-3-lib/files/patch-ah
John Polstra d5a92ea924 Split the Modula-3 port into two pieces, creating a new port
"modula-3-lib".  It installs only the shared libraries needed for
executing Modula-3 programs.  This saves a lot of disk space for
people who need to run Modula-3 programs but don't need to build
them.  The original "modula-3" port now depends on this one, and
uses it to install the compiler and the rest of the development
system.

Also, everything is now built with optimization.  I have been
testing this for at least a month, and haven't seen any problems
from it.  It makes the libraries and executables substantially
smaller.

This new port also includes some hooks that will make SOCKS support
possible in the near future.
1996-10-29 23:01:55 +00:00

211 lines
7.5 KiB
Plaintext

Update the m3build templates for FreeBSD-2.1 and later.
Index: m3/m3build/templates/COMMON
--- COMMON.orig Fri Feb 9 14:23:04 1996
+++ COMMON Fri Oct 25 13:48:57 1996
@@ -998,7 +998,7 @@
if HAVE_PKGTOOLS
_install_file (src, dest, "0755", "T")
else
- local target = format ("%s%s%s%s%s%s%s", PKG_USE, SL, BUILD_PACKAGE,
+ local target = format ("%s%s%s%s%s%s%s", LIB_TO_PKG, SL, BUILD_PACKAGE,
SL, BUILD_DIR, SL, src)
local link = format ("%s%s%s", dest, SL, src)
>> M3SHIP_FILE in
Index: m3/m3build/templates/FreeBSD2
--- FreeBSD2.orig Thu Jun 20 12:17:07 1996
+++ FreeBSD2 Fri Oct 25 13:47:16 1996
@@ -8,8 +8,9 @@
% Modified On Thu Apr 8 13:45:49 PDT 1993 by muller
%
% Sun Nov 27 20:19:31 MET 1994 by ow
+% Fri Feb 2 15:04:50 PST 1996 by jdp@polstra.com
%
-% FreeBSD 2.0 configuration (with shared library support in comments)
+% FreeBSD 2.1 and 2.2 configuration, with shared library support
%
%-------------------------------------------------- compilation environment ---
@@ -44,6 +45,8 @@
MAN_INSTALL = INSTALL_ROOT & "man" % man pages
HTML_INSTALL = INSTALL_ROOT & "lib/m3/www" % public hypertext
+WDROOT = $HOME & "/m3/pkg" % handy default for overrides
+
% The manual pages normally go in subdirectories man{1,...8} of
% the MAN_INSTALL directory. If you prefer to have them all in
% a single section, define MAN_SECTION to be that section's name.
@@ -56,7 +59,12 @@
LIB_USE = LIB_INSTALL
PKG_USE = PKG_INSTALL
-readonly INSTALL_IMPLS = "TRUE"
+% This is a relative path from LIB_USE to PKG_USE, so that we can avoid
+% installing absolute symbolic links. If you cannot support such relative
+% links, then make it the same as PKG_USE.
+LIB_TO_PKG = "../pkg"
+
+readonly INSTALL_IMPLS = ""
% "TRUE"
% => save all source files during the install
% => makes debugging easier and browsing more fruitful
@@ -90,15 +98,17 @@
% "import_TCP" is called from the tcp package.
readonly proc import_X11R4() is
- import_lib("Xaw", "/usr/X386/lib")
- import_lib("Xmu", "/usr/X386/lib")
- import_lib("Xext", "/usr/X386/lib")
- import_lib("Xt", "/usr/X386/lib")
- import_lib("X11", "/usr/X386/lib")
+ import_lib("Xaw", "/usr/X11R6/lib")
+ import_lib("Xmu", "/usr/X11R6/lib")
+ import_lib("Xt", "/usr/X11R6/lib")
+ import_lib("SM", "/usr/X11R6/lib")
+ import_lib("ICE", "/usr/X11R6/lib")
+ import_lib("Xext", "/usr/X11R6/lib")
+ import_lib("X11", "/usr/X11R6/lib")
end
readonly proc import_Motif() is
- import_lib("Xm", "/usr/X386/lib")
+ import_lib("Xm", "/usr/X11R6/lib")
end
readonly proc import_DECPEX() is
@@ -128,9 +138,9 @@
% entire function. Note, the distributed code assumes gnuemacs version 19
% or later.
-readonly proc emacs_compile (el) is
- exec ("emacs -batch -f batch-byte-compile", el)
-end
+%readonly proc emacs_compile (el) is
+% exec ("emacs -batch -f batch-byte-compile", el)
+%end
%---------------------------------------------------- C compiler and linker ---
% The following definitions are used to compile and link C modules.
@@ -142,33 +152,27 @@
% The actual definitions must be kept on one line due to finicky details
% of the bootstrap process.
-
-%% The versions of ar and ranlib shipped with FreeBSD 2.0
-%% definitelty do not work with the Modula-3 archives.
-%% ar sometimes complains about `too many open files' and
-%% ranlib often says `inappropriate file type for object'.
-%% I haven't looked into this further, since newer versions
-%% of the GNU binutils package work quite well. - Olaf Wagner 2/13/95
-
-
-CC = _ifdef ("CC", CC, [ "gcc" ])
+CC = _ifdef ("CC", CC, [ "cc", "-fpic" ])
%--- C compiler with flags for compiling a single ".c" file
-% ------ FOR SHARED LIBS, add -fPIC
-LINK = _ifdef ("LINK", LINK, [ "gcc" ])
+LINK = _ifdef ("LINK", LINK, [ "ld", "-e", "start", "-dc", "-dp", "/usr/lib/crt0.o" ])
%--- C compiler with flags for linking
-% ------ FOR SHARED LIBS, add -Xlinker -Bdynamic
-MAKELIB = _ifdef ("MAKELIB", MAKELIB, [ "/usr/bin/ar", "cru" ])
+MAKELIB = _ifdef ("MAKELIB", MAKELIB, [ "ar", "cru" ])
%--- program to build library archives
RANLIB = _ifdef ("RANLIB", RANLIB, [ "ranlib" ])
%--- program to index libraries
-ASM = _ifdef ("ASM", ASM, [ "/usr/bin/as" ])
+ASM = _ifdef ("ASM", ASM, [ "as", "-k" ])
%--- assembler
-% ------ FOR SHARED LIBS with /usr/bin/as from the FreeBSD distribution,
-% add -k -W
+
+BOOT_LINK = _ifdef ("BOOT_LINK", BOOT_LINK, [ "cc" ])
+%--- C compiler with flags for linking, used during the bootstrap process.
+% We have to use "cc" for the bootstrap, because the "-z2" option
+% ("libraries systematically linked with all programs") doesn't get used
+% during the bootstrap process. If we use "ld", then the C library isn't
+% linked in.
%------------------------------------------------------------- GNU variants ---
% The two large pieces of GNU software used by the Modula-3 system
@@ -179,9 +183,9 @@
% To use the GNU defaults for CC and CFLAGS, specify "*".
%
-GNU_CC = _ifdef ("GNU_CC", GNU_CC, "*")
-GNU_CFLAGS = _ifdef ("GNU_CFLAGS", GNU_CFLAGS, "*")
-GNU_MAKE = _ifdef ("GNU_MAKE", GNU_MAKE, "gmake")
+GNU_CC = _ifdef ("GNU_CC", GNU_CC, "cc")
+GNU_CFLAGS = _ifdef ("GNU_CFLAGS", GNU_CFLAGS, "-O")
+GNU_MAKE = _ifdef ("GNU_MAKE", GNU_MAKE, "make")
%-------------------------------------------------------- Modula-3 compiler ---
% The syntax for the values passed to most of the M3_CONFIG options is
@@ -192,7 +196,8 @@
M3 = LIB_USE & "/m3"
% What are the standard flags?
-M3OPTIONS = [ "-w1", "-why", "-g" ]
+M3OPTIONS = [ "-w1", "-why", "-O" ]
+% ------ FOR DEBUGGING INFO, add "-g"
M3_CONFIG = [
"-Y1" & _pack_args (CC),
@@ -201,11 +206,11 @@
"-Y4" & _pack_args (RANLIB),
"-Y7" & _pack_args (ASM),
- "-Y6@" & LIB_USE & "/m3cgc1@-quiet@",
+ "-Y6@" & LIB_USE & "/m3cgc1@-quiet@-fpic@",
% --- the Modula-3 IL to assembly language pass
- % ------ FOR SHARED LIBS, add -fPIC
- "-z2@-lm@", % --- libraries systematically linked with all programs
+ "-z2@-lm@/usr/lib/libgcc.a@-lc@/usr/lib/libgcc.a@",
+ % --- libraries systematically linked with all programs
"-z3" & LIB_USE & SL & "report_coverage.o",
% --- library linked in programs compiled with "-Z" coverage option
@@ -248,7 +253,7 @@
% passes in a file and then deletes the file, unless "-keep" or
% "-verbose" is specified.
- "-zK0",
+ "-zK1",
% --- Set the value of "-zK" to "1" if you want the m3 driver to
% supply -Bdynamic/-Bstatic options to the linker, "0" otherwise.
@@ -263,9 +268,9 @@
proc build_standalone() is
% --- reset the linker to avoid shared libraries.
- M3_CONFIG += "-Y2@cc@-static@"
M3_CONFIG += "-Y6@" & LIB_USE & "/m3cgc1@-quiet@"
- M3_CONFIG += "-Y7@/usr/bin/as@"
+ M3_CONFIG += "-Y7@as@"
+ M3_CONFIG += "-Bstatic"
end
proc build_shared() is
@@ -282,7 +287,7 @@
proc after_library_hooks(x) is
local lib_a = format ("lib%s.a", x)
- local lib_so = format ("lib%s.so.1.1", x)
+ local lib_so = format ("lib%s.so.4.0", x)
local dest = format ("%s%s%s%s%s", PKG_INSTALL, SL, BUILD_PACKAGE,
SL, BUILD_DIR)
@@ -291,7 +296,7 @@
write ("missing ", lib_a, ": not building ", lib_so, CR)
else
if stale (lib_so, lib_a)
- exec ("/usr/bin/ld -Bshareable -assert pure-text -o",
+ exec ("ld -Bshareable -assert pure-text -o",
lib_so, COMPILE_OBJECTS)
end
install_derived (lib_so)