--- a/makemake 2012-07-05 14:08:30.210815190 -0700 +++ b/makemake 2012-07-05 14:26:28.353381906 -0700 @@ -73,7 +73,7 @@ # List the default make targets. -DEFAULT_TARGETS="lib grfont.dat prog pgplot.doc" +DEFAULT_TARGETS="lib grfont.dat pgplot.doc" # Get the configuration variables. @@ -199,18 +199,18 @@ fi if (echo $DRIV_LIST | grep -s xmdriv 2>&1 1>/dev/null); then - DEFAULT_TARGETS="$DEFAULT_TARGETS libXmPgplot.a pgmdemo" - INSTALL_LIST="$INSTALL_LIST libXmPgplot.a XmPgplot.h" + DEFAULT_TARGETS="$DEFAULT_TARGETS libXmPgplot.a" + INSTALL_LIST="$INSTALL_LIST libXmPgplot.a XmPgplot.h" fi if (echo $DRIV_LIST | grep -s xadriv 2>&1 1>/dev/null); then - DEFAULT_TARGETS="$DEFAULT_TARGETS libXaPgplot.a pgawdemo" + DEFAULT_TARGETS="$DEFAULT_TARGETS libXaPgplot.a" INSTALL_LIST="$INSTALL_LIST libXaPgplot.a XaPgplot.h" fi if (echo $DRIV_LIST | grep -s tkdriv 2>&1 1>/dev/null); then - DEFAULT_TARGETS="$DEFAULT_TARGETS libtkpgplot.a pgtkdemo pgtkdemo.tcl" - INSTALL_LIST="$INSTALL_LIST libtkpgplot.a tkpgplot.h" + DEFAULT_TARGETS="$DEFAULT_TARGETS libtkpgplot.a" + INSTALL_LIST="$INSTALL_LIST libtkpgplot.a tkpgplot.h" fi if (echo $DRIV_LIST | grep -s rvdriv 2>&1 1>/dev/null); then @@ -622,7 +622,7 @@ # Fortran compiler and compilation flags # FCOMPL=$FCOMPL -FFLAGC=$FFLAGC +FFLAGC=$FFLAGC \$(FFLAGS) FFLAGD=$FFLAGD # # C compiler and compilation flags @@ -633,7 +633,7 @@ TK_INCL=$TK_INCL RV_INCL=$RV_INCL CCOMPL=$CCOMPL -CFLAGC=$CFLAGC -I. +CFLAGC=$CFLAGC -I. \$(CFLAGS) CFLAGD=$CFLAGD MCOMPL=$MCOMPL MFLAGC=$MFLAGC @@ -657,7 +657,10 @@ # Shared library creation. # SHARED_LIB=$SHARED_LIB +SHARED_CLIB=$SHARED_CLIB SHARED_LD=$SHARED_LD +SHARED_LD_PGPLOT_OPTS=$SHARED_LD_PGPLOT_OPTS +SHARED_LD_CPGPLOT_OPTS=$SHARED_LD_CPGPLOT_OPTS # # The libraries that the shared PGPLOT library depends upon. # This is for systems that allow one to specify what libraries @@ -806,7 +809,8 @@ # libraries. #----------------------------------------------------------------------- -lib : libpgplot.a $(SHARED_LIB) +#lib : libpgplot.a $(SHARED_LIB) +lib : libpgplot.a libpgplot.a : $(PG_ROUTINES) $(PG_NON_STANDARD) $(GR_ROUTINES) \ $(DISPATCH_ROUTINE) $(DRIVERS) $(SYSTEM_ROUTINES) @@ -816,6 +820,16 @@ $(DRIVERS) $(SYSTEM_ROUTINES) | sort | uniq` $(RANLIB) libpgplot.a +#shared: $(PG_ROUTINES) $(PG_NON_STANDARD) $(GR_ROUTINES) \ +# $(DISPATCH_ROUTINE) $(DRIVERS) $(SYSTEM_ROUTINES) +# $(SHARED_LD) + +shared: $(PG_ROUTINES) $(PG_NON_STANDARD) grfont.dat \ + $(GR_ROUTINES) $(DISPATCH_ROUTINE) $(DRIVERS) $(SYSTEM_ROUTINES) + $(SHARED_LD) $(SHARED_LD_PGPLOT_OPTS) `ls $(PG_ROUTINES) \ + $(PG_NON_STANDARD) $(GR_ROUTINES) $(DISPATCH_ROUTINE) \ + $(DRIVERS) $(SYSTEM_ROUTINES) | sort | uniq` $(SHARED_LIB_LIBS) -o $(SHARED_LIB) + ln -s $(SHARED_LIB) libpgplot.so EOD # Emit the shared library dependency if requested. @@ -824,7 +838,7 @@ cat >> makefile << \EOD $(SHARED_LIB): $(PG_ROUTINES) $(PG_NON_STANDARD) \ $(GR_ROUTINES) $(DISPATCH_ROUTINE) $(DRIVERS) $(SYSTEM_ROUTINES) - $(SHARED_LD) `ls $(PG_ROUTINES) \ + $(SHARED_LD) $(SHARED_LD_PGPLOT_OPTS) `ls $(PG_ROUTINES) \ $(PG_NON_STANDARD) $(GR_ROUTINES) $(DISPATCH_ROUTINE) \ $(DRIVERS) $(SYSTEM_ROUTINES) | sort | uniq` $(SHARED_LIB_LIBS) EOD @@ -857,7 +871,7 @@ for file in $DEMOS; do echo "${file}: \$(DEMDIR)/${file}.f $EXTRA_DEPENDENCY" -echo " \$(FCOMPL) \$(FFLAGD) -o ${file} \$(DEMDIR)/${file}.f \$(PGPLOT_LIB) \$(LIBS)" +echo " \$(FCOMPL) \$(FFLAGD) \$(DEMDIR)/${file}.f \$(PGPLOT_LIB) \$(LIBS) -o ${file}" done >> makefile cat >> makefile << \EOD @@ -921,13 +935,13 @@ # Target "pgxwin_server" is the server program for the XW driver #----------------------------------------------------------------------- pgxwin_server: $(DRVDIR)/pgxwin_server.c - $(CCOMPL) $(CFLAGC) $(XINCL) -o pgxwin_server $(DRVDIR)/pgxwin_server.c $(LIBS) + $(CCOMPL) $(CFLAGC) $(LDFLAGS) $(XINCL) $(DRVDIR)/pgxwin_server.c $(LIBS) -o pgxwin_server #----------------------------------------------------------------------- # Target "pgdisp" is the pgdisp server program for /XDISP driver #----------------------------------------------------------------------- pgdisp: $(PGDISP_ROUTINES) - $(CCOMPL) $(CFLAGC) -o pgdisp $(PGDISP_ROUTINES) $(LIBS) + $(CCOMPL) $(CFLAGC) $(LDFLAGS) $(PGDISP_ROUTINES) $(LIBS) -o pgdisp #----------------------------------------------------------------------- # Target "libxmpgplot.a" contains the Motif widget driver. @@ -937,6 +951,10 @@ ar ru libXmPgplot.a XmPgplot.o $(RANLIB) libXmPgplot.a +libXmPgplot.so: XmPgplot.h XmPgplot.o + $(SHARED_LD) $(LDFLAGS) -Wl,-soname,libXmPgplot.so.5 XmPgplot.o -L. -lcpgplot $(MOTIF_LIBS) -o libXmPgplot.so.5 + ln -s libXmPgplot.so.5 libXmPgplot.so + XmPgplot.h: $(XMDIR)/XmPgplot.h cp $(XMDIR)/XmPgplot.h XmPgplot.h @@ -965,6 +983,10 @@ ar ru libtkpgplot.a tkpgplot.o $(RANLIB) libtkpgplot.a +libtkpgplot.so: tkpgplot.h tkpgplot.o + $(SHARED_LD) $(LDFLAGS) -Wl,-soname,libtkpgplot.so.5 tkpgplot.o -L. -lcpgplot $(TK_LIBS) -o libtkpgplot.so.5 + ln -s libtkpgplot.so.5 libtkpgplot.so + tkpgplot.h: $(TKDIR)/tkpgplot.h cp $(TKDIR)/tkpgplot.h tkpgplot.h @@ -983,7 +1005,7 @@ cp $(TKDIR)/rvpgplot.h rvpgplot.h rvpgplot.o: $(DRVDIR)/pgxwin.h rvpgplot.h $(TKDIR)/tkpgplot.c - $(CCOMPL) -o $@ -c -DUSE_RIVET $(CFLAGC) -I$(DRVDIR) -I$(TKDIR) $(RV_INCL) $(TKDIR)/tkpgplot.c + $(CCOMPL) -c -DUSE_RIVET $(CFLAGC) -I$(DRVDIR) -I$(TKDIR) $(RV_INCL) $(TKDIR)/tkpgplot.c -o $@ #----------------------------------------------------------------------- # Target "install" is required for Figaro. @@ -1025,12 +1047,12 @@ grivas.o : $(DRVDIR)/gadef.h grtv00.o : $(DRVDIR)/imdef.h pgxwin.o : $(DRVDIR)/pgxwin.h -pndriv.o : ./png.h ./pngconf.h ./zlib.h ./zconf.h +pndriv.o : /usr/include/png.h /usr/include/pngconf.h /usr/include/zlib.h /usr/include/zconf.h x2driv.o figdisp_comm.o: $(DRVDIR)/commands.h -cpg: libcpgplot.a cpgplot.h cpgdemo +cpg: cpgplot.h libcpgplot.a @echo ' ' @echo '*** Finished compilation of the C PGPLOT wrapper library ***' @echo ' ' @@ -1039,24 +1061,36 @@ @echo 'will be needed.' @echo ' ' +cpg-shared: libcpgplot.so + pgbind: $(SRC)/cpg/pgbind.c $(CCOMPL) $(CFLAGC) $(SRC)/cpg/pgbind.c -o pgbind -libcpgplot.a cpgplot.h: $(PG_SOURCE) pgbind +cpgplot.h: $(PG_SOURCE) pgbind ./pgbind $(PGBIND_FLAGS) -h -w $(PG_SOURCE) + +libcpgplot.a: cpgplot.h $(CCOMPL) -c $(CFLAGC) cpg*.c rm -f cpg*.c ar ru libcpgplot.a cpg*.o $(RANLIB) libcpgplot.a rm -f cpg*.o +libcpgplot.so: cpgplot.h $(PG_SOURCE) pgbind + ./pgbind $(PGBIND_FLAGS) -w $(PG_SOURCE) + $(CCOMPL) -c $(CFLAGC) cpg*.c + rm -f cpg*.c + $(SHARED_LD) $(SHARED_LD_CPGPLOT_OPTS) cpg*.o -L. -lpgplot $(SHARED_LIB_LIBS) -o $(SHARED_CLIB) + ln -s $(SHARED_CLIB) libcpgplot.so + rm -f cpg*.o + cpgdemo: cpgplot.h $(SRC)/cpg/cpgdemo.c libcpgplot.a $(CCOMPL) $(CFLAGD) -c -I. $(SRC)/cpg/cpgdemo.c - $(FCOMPL) -o cpgdemo cpgdemo.o $(CPGPLOT_LIB) $(LIBS) + $(FCOMPL) cpgdemo.o $(CPGPLOT_LIB) $(LIBS) -o cpgdemo rm -f cpgdemo.o -pgmdemo: pgmdemo.o libXmPgplot.a - $(FCOMPL) -o pgmdemo pgmdemo.o -L`pwd` -lXmPgplot $(CPGPLOT_LIB) $(MOTIF_LIBS) +pgmdemo: pgmdemo.o libXmPgplot.so + $(FCOMPL) pgmdemo.o -L`pwd` -lXmPgplot $(CPGPLOT_LIB) $(MOTIF_LIBS) -o pgmdemo pgmdemo.o: $(XMDIR)/pgmdemo.c XmPgplot.h libcpgplot.a cpgplot.h $(CCOMPL) $(CFLAGD) -c -I`pwd` $(MOTIF_INCL) $(XMDIR)/pgmdemo.c @@ -1067,8 +1101,8 @@ pgawdemo.o: $(XADIR)/pgawdemo.c XaPgplot.h libcpgplot.a cpgplot.h $(CCOMPL) $(CFLAGD) -c -I`pwd` $(ATHENA_INCL) $(XADIR)/pgawdemo.c -pgtkdemo: pgtkdemo.o libtkpgplot.a - $(FCOMPL) -o pgtkdemo pgtkdemo.o -L`pwd` -ltkpgplot $(CPGPLOT_LIB) $(TK_LIBS) +pgtkdemo: pgtkdemo.o libtkpgplot.so + $(FCOMPL) pgtkdemo.o -L`pwd` -ltkpgplot $(CPGPLOT_LIB) $(TK_LIBS) -o pgtkdemo pgtkdemo.tcl: $(TKDIR)/pgtkdemo.tcl cp $(TKDIR)/pgtkdemo.tcl pgtkdemo.tcl