$NetBSD: patch-aa,v 1.5 2003/03/02 09:04:04 jtb Exp $

--- makefile.orig	Tue Dec 17 15:43:30 2002
+++ makefile
@@ -7,7 +7,7 @@
 ###############################################################
 
 
-CC=gcc
+#CC=gcc
 # A C or C++ compiler, e. g., gcc, cc, xlc.
 # There are a few components written in C which may be compiled
 # under C++, but C compilers tend to generate slightly better code.
@@ -15,11 +15,11 @@ CC=gcc
 # compatible code.
 
 
-CXX=g++
+#CXX=g++
 # A C++ compiler, e.g., g++, CC, xlC
 
 
-CFLAGS=-O2
+#CFLAGS=-O2
 # Flags for the C compiler
 # Some useful flags:
 #   -O2   --  recommended level of optimization
@@ -31,7 +31,7 @@ CFLAGS=-O2
 
 
 
-CXXFLAGS=$(CFLAGS)
+#CXXFLAGS=$(CFLAGS)
 # Flags for the C++ compiler (usually the same as CFLAGS)
 # Some useful flags:
 #   -+  -- needed with xlC to make it treat .c files as C++ files
@@ -40,16 +40,16 @@ CXXFLAGS=$(CFLAGS)
 # The defaults should almost always be OK.
 
 
-AR=ar
+#AR=ar
 # command to make a library
 
-ARFLAGS=ruv
+#ARFLAGS=ruv
 # arguments for AR
 
-RANLIB=ranlib
+#RANLIB=ranlib
 # set to echo if you want to disable it completely
 
-LDFLAGS=
+#LDFLAGS=
 # arguments for linker for C++ programs
 
 LDFLAGS_CXX=$(LDFLAGS)
@@ -61,13 +61,13 @@ LDLIBS=-lm
 LDLIBS_CXX=$(LDLIBS)
 # libraries for linking C++ programs
 
-CPPFLAGS=
+#CPPFLAGS=
 # arguments for the C preprocessor
 
-PREFIX=/usr/local
+#PREFIX=/usr/local
 LIBDIR=$(PREFIX)/lib
 INCLUDEDIR=$(PREFIX)/include
-DOCDIR=$(PREFIX)/doc
+DOCDIR=$(PREFIX)/share/doc
 # where to install NTL
 
 ###############################################################
@@ -87,15 +87,15 @@ DOCDIR=$(PREFIX)/doc
 ###############################################################
 
 
-GMP_INCDIR=
+GMP_INCDIR= -I${BUILDLINK_PREFIX.gmp}/include
 # Set to -I<directory containing gmp.h> if using GMP and GMP
 # is not installed in a standard system directory, empty otherwise
 
-GMP_LIBDIR=
+GMP_LIBDIR= -Wl,-R${BUILDLINK_PREFIX.gmp}/lib -L${BUILDLINK_PREFIX.gmp}/lib
 # Set to -L<directory containing libgmp.a> if using GMP and GMP
 # is not installed in a standard system directory, empty otherwise
 
-GMP_LIB=
+GMP_LIB= -lgmp
 # Set to -lgmp if using GMP, empty otherwise
 
 ###############################################################
@@ -147,7 +147,7 @@ OBJ=$(O19)
 S01=FFT.c FacVec.c GF2.c GF2E.c GF2EX.c GF2EXFactoring.c GF2X.c GF2X1.c
 S02=$(S01) GF2XFactoring.c GF2XVec.c HNF.c ctools.c LLL.c LLL_FP.c LLL_QP.c
 S03=$(S02) LLL_RR.c LLL_XD.c RR.c WordVector.c ZZ.c ZZVec.c ZZX.c ZZX1.c
-S04=$(S03) ZZXCharPoly.c ZZXFactoring.c ZZ_p.c ZZ_pE.c ZZ_pEX.c 
+S04=$(S03) ZZXCharPoly.c ZZXFactoring.c ZZ_p.c ZZ_pE.c ZZ_pEX.c
 S05=$(S04) ZZ_pEXFactoring.c ZZ_pX.c ZZ_pX1.c ZZ_pXCharPoly.c
 S06=$(S05) ZZ_pXFactoring.c fileio.c lip.c lzz_p.c lzz_pE.c lzz_pEX.c
 S07=$(S06) lzz_pEXFactoring.c lzz_pX.c lzz_pX1.c
@@ -162,8 +162,8 @@ S15=$(S14) vec_long.c vec_lzz_p.c vec_lz
 S16=$(S15) vec_vec_GF2.c vec_vec_GF2E.c vec_vec_RR.c vec_vec_ZZ.c
 S17=$(S16) vec_vec_ZZ_p.c vec_vec_ZZ_pE.c vec_vec_long.c vec_vec_lzz_p.c
 S18=$(S17) vec_vec_lzz_pE.c vec_xdouble.c xdouble.c
-S19=$(S18) G_LLL_FP.c G_LLL_QP.c G_LLL_XD.c G_LLL_RR.c 
-S20=$(S19) vec_ulong.c vec_vec_ulong.c 
+S19=$(S18) G_LLL_FP.c G_LLL_QP.c G_LLL_XD.c G_LLL_RR.c
+S20=$(S19) vec_ulong.c vec_vec_ulong.c
 
 SRC = $(S20)
 
@@ -178,7 +178,7 @@ SINC = c_lip_impl.h g_lip_impl.h
 # library header files
 
 IN01= FFT.h FacVec.h GF2.h GF2E.h GF2EX.h GF2EXFactoring.h GF2X.h
-IN02=$(IN01) GF2XFactoring.h GF2XVec.h HNF.h ctools.h LLL.h 
+IN02=$(IN01) GF2XFactoring.h GF2XVec.h HNF.h ctools.h LLL.h
 IN03=$(IN02) RR.h WordVector.h ZZ.h ZZVec.h ZZX.h ZZXFactoring.h ZZ_p.h
 IN04=$(IN03) ZZ_pE.h ZZ_pEX.h ZZ_pEXFactoring.h ZZ_pX.h ZZ_pXFactoring.h
 IN05=$(IN04) fileio.h lip.h lzz_p.h lzz_pE.h lzz_pEX.h lzz_pEXFactoring.h
@@ -202,9 +202,9 @@ INCL=$(IN18)
 
 # test data
 
-TD1=BerlekampTestIn BerlekampTestOut CanZassTestIn CanZassTestOut 
-TD2=$(TD1) ZZXFacTestIn ZZXFacTestOut MoreFacTestIn LLLTestIn LLLTestOut RRTestIn RRTestOut 
-TD3=$(TD2) MatrixTestIn MatrixTestOut CharPolyTestIn  
+TD1=BerlekampTestIn BerlekampTestOut CanZassTestIn CanZassTestOut
+TD2=$(TD1) ZZXFacTestIn ZZXFacTestOut MoreFacTestIn LLLTestIn LLLTestOut RRTestIn RRTestOut
+TD3=$(TD2) MatrixTestIn MatrixTestOut CharPolyTestIn
 TD4=$(TD3) CharPolyTestOut QuadTestIn QuadTestOut
 
 TD = $(TD4)
@@ -260,15 +260,15 @@ DOC = $(D18)
 # test program executables
 
 PROG1=QuickTest BerlekampTest CanZassTest ZZXFacTest MoreFacTest LLLTest  BitMatTest
-PROG2=$(PROG1) MatrixTest CharPolyTest RRTest QuadTest 
+PROG2=$(PROG1) MatrixTest CharPolyTest RRTest QuadTest
 PROG3=$(PROG2) GF2EXTest subset ZZ_pEXTest lzz_pEXTest
 PROGS = $(PROG3)
 
 # things to save to a tar file
 
-SFI1=makefile $(SRC) $(SINC) $(SCRIPTS) $(MD) $(GT) $(TS) $(TD) mach_desc.win 
+SFI1=makefile $(SRC) $(SINC) $(SCRIPTS) $(MD) $(GT) $(TS) $(TD) mach_desc.win
 SFI2=$(SFI1) MulTimeTest.c PolyTimeTest.c clr_AVOID_BRANCHING clr_AVOID_FLOAT
-SFI3=$(SFI2) clr_FFT_PIPELINE clr_LONG_LONG clr_TBL_REM clr_WIZARD_HACK 
+SFI3=$(SFI2) clr_FFT_PIPELINE clr_LONG_LONG clr_TBL_REM clr_WIZARD_HACK
 SFI4=$(SFI3) InitSettings.c mul_banner poly_banner set_AVOID_BRANCHING set_AVOID_FLOAT
 SFI5=$(SFI4) set_FFT_PIPELINE set_LONG_LONG set_TBL_REM set_WIZARD_HACK
 SFI6=$(SFI5) WizComp.c DispSettings.c config_template WizardAux Wizard def_makefile
@@ -285,11 +285,11 @@ SFILES=$(SFI6)
 NTL_INCLUDE = -I../include -I.
 # NTL needs this to find its include files
 
-COMPILE = $(CC) $(NTL_INCLUDE) $(CPPFLAGS) $(CFLAGS) -c
-COMPILE_CXX = $(CXX) $(NTL_INCLUDE) $(CPPFLAGS) $(CXXFLAGS) -c
+COMPILE = $(LIBTOOL) $(CC) $(NTL_INCLUDE) $(CPPFLAGS) $(CFLAGS) -c
+COMPILE_CXX = $(LIBTOOL) $(CXX) $(NTL_INCLUDE) $(CPPFLAGS) $(CXXFLAGS) -c
 
-LINK = $(CC) $(NTL_INCLUDE) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS)
-LINK_CXX = $(CXX) $(NTL_INCLUDE) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS_CXX)
+LINK = $(LIBTOOL) $(CC) $(NTL_INCLUDE) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS)
+LINK_CXX = $(LIBTOOL) $(CXX) $(NTL_INCLUDE) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS_CXX)
 
 
 
@@ -298,14 +298,14 @@ all:
 	make setup2
 	make setup3
 	make setup4
-	make ntl.a
+	make libntl.la
 
 
 # setup1 generates the file ../incluse/NTL/mach_desc.h
 
 setup1:
 	$(COMPILE) MakeDescAux.c
-	$(LINK) -o MakeDesc MakeDesc.c MakeDescAux.o $(LDLIBS)
+	$(LINK) -o MakeDesc MakeDesc.c MakeDescAux.lo $(LDLIBS)
 	./MakeDesc
 	mv mach_desc.h ../include/NTL/mach_desc.h
 
@@ -332,9 +332,10 @@ setup4:
 	sh Wizard $(WIZARD)
 
 
-ntl.a:	$(OBJ) 
-	$(AR) $(ARFLAGS) ntl.a $(OBJ)
-	- $(RANLIB) ntl.a
+libntl.la:	$(OBJ)
+	$(LIBTOOL) $(CC) -o libntl.la $(OBJ:.o=.lo) \
+	$(GMP_LIBDIR) $(GMP_LIB) -rpath $(LIBDIR) \
+	-version-info 0:1
 
 lip.o:	lip.c g_lip_impl.h c_lip_impl.h lip_gmp_aux_impl.h
 	$(COMPILE) $(GMP_INCDIR) lip.c
@@ -343,15 +344,15 @@ ctools.o:	ctools.c
 	$(COMPILE) ctools.c
 
 
-GetTime.o: GetTime.c 
+GetTime.o: GetTime.c
 	$(COMPILE) GetTime.c
 
 
-.c.o: 
+.c.o:
 	$(COMPILE_CXX) $<
 
-.c: 
-	$(LINK_CXX) -o $@ $< ntl.a  $(GMP_LIBDIR) $(GMP_LIB) $(LDLIBS_CXX) 
+.c:
+	$(LINK_CXX) -o $@ $< libntl.la  $(GMP_LIBDIR) $(GMP_LIB) $(LDLIBS_CXX)
 
 #################################################################
 #
@@ -372,25 +373,20 @@ check:
 # make install just does a simple copy of the include file
 #   and library
 # make uninstall removes these files
-#   
+#
 #################################################################
 
 
 
 
 install:
-	mkdir -p $(LIBDIR)
-	cp ntl.a $(LIBDIR)/libntl.a
-	mkdir -p $(INCLUDEDIR)
-	- rm -r $(INCLUDEDIR)/NTL
-	mkdir $(INCLUDEDIR)/NTL
-	cp ../include/NTL/*.h $(INCLUDEDIR)/NTL
-	mkdir -p $(DOCDIR)
-	- rm -r $(DOCDIR)/NTL
-	mkdir $(DOCDIR)/NTL
-	cp ../doc/*.txt $(DOCDIR)/NTL
-	cp ../doc/*.html $(DOCDIR)/NTL
-	cp ../doc/*.gif $(DOCDIR)/NTL
+	$(LIBTOOL) $(BSD_INSTALL_DATA) libntl.la $(LIBDIR)
+	$(BSD_INSTALL_DATA_DIR) $(INCLUDEDIR)/NTL
+	$(BSD_INSTALL_DATA) ../include/NTL/*.h $(INCLUDEDIR)/NTL
+	$(BSD_INSTALL_DATA_DIR) $(DOCDIR)/NTL
+	$(BSD_INSTALL_DATA) ../doc/*.txt $(DOCDIR)/NTL
+	$(BSD_INSTALL_DATA) ../doc/*.html $(DOCDIR)/NTL
+
 
 
 uninstall:
@@ -409,17 +405,17 @@ uninstall:
 #
 #################################################################
 
-clobber:	
-	- rm ntl.a mach_desc.h ../include/NTL/mach_desc.h  GetTime.c 
-	- rm lip_gmp_aux_impl.h ../include/NTL/gmp_aux.h
+clobber:
+	- rm -fr libntl.la .libs mach_desc.h ../include/NTL/mach_desc.h  GetTime.c
+	- rm -f lip_gmp_aux_impl.h ../include/NTL/gmp_aux.h
 	- sh RemoveProg $(PROGS) MakeDesc TestGetTime gen_lip_gmp_aux gen_gmp_aux
-	- rm *.o
-	- rm -r small
+	- rm -f *.o *.lo
+	- rm -fr small
 
 clean:
-	- rm *.o 
+	- rm -f *.o *.lo
 	- sh RemoveProg MakeDesc TestGetTime gen_lip_gmp_aux gen_gmp_aux
-	- rm -r small
+	- rm -fr small
 
 #################################################################
 #
@@ -436,7 +432,7 @@ DIRNAME=ntl-5.3.1
 WINDIR=WinNTL-5_3_1
 
 package:
-	sh unixify "$(SFILES)" "$(INCL)" "$(DOC)" 
+	sh unixify "$(SFILES)" "$(INCL)" "$(DOC)"
 	-rm -r $(DIRNAME)
 	mv unix $(DIRNAME)
 	chmod -R a+rX $(DIRNAME)
@@ -467,17 +463,17 @@ WO2 = $(WO1) ZZ_pX1.o lip.o tools.o vec_
 WOBJ = $(WO2)
 
 
-wntl.a:	$(WOBJ) 
-	$(AR) $(ARFLAGS) wntl.a $(WOBJ)
-	- $(RANLIB) wntl.a
+libwntl.la:	$(WOBJ)
+	$(LIBTOOL) $(CC) -o libwntl.la $(WOBJ:.o=.lo) -rpath $(LIBDIR) \
+	-version-info 0:0
 
 
 
 MulTimeTest:
-	$(LINK_CXX) -o MulTimeTest MulTimeTest.c wntl.a  $(GMP_LIBDIR) $(GMP_LIB)  $(LDLIBS_CXX)
+	$(LINK_CXX) -o MulTimeTest MulTimeTest.c libwntl.la  $(GMP_LIBDIR) $(GMP_LIB)  $(LDLIBS_CXX)
 
 PolyTimeTest:
-	$(LINK_CXX) -o PolyTimeTest PolyTimeTest.c wntl.a  $(GMP_LIBDIR) $(GMP_LIB) $(LDLIBS_CXX)
+	$(LINK_CXX) -o PolyTimeTest PolyTimeTest.c libwntl.la  $(GMP_LIBDIR) $(GMP_LIB) $(LDLIBS_CXX)
 
 InitSettings:
 	$(LINK_CXX) -o InitSettings InitSettings.c  $(LDLIBS_CXX)
