include ./Makefile.def
include ./Makefile.object

.SILENT:

DIRS: $(OBJDIR) $(BINDIR) $(LIBDIR) $(GPGPROGLAUNCHBINDIR)

$(OBJDIR): 
	@mkdir -p $(OBJDIR);
	@mkdir -p $(PDFGUICLASSDIR);

$(BINDIR): 
	@mkdir -p $(BINDIR);

$(LIBDIR): 
	@mkdir -p $(LIBDIR);

$(MATLABOBJDIR):
	@mkdir -p $(MATLABOBJDIR);

$(MATLABBINDIR):
	@mkdir -p $(MATLABBINDIR);

$(MATHOBJDIR):
	@mkdir -p $(MATHOBJDIR);

$(OCTAVEOBJDIR):
	@mkdir -p $(OCTAVEOBJDIR);
	@mkdir -p $(BINDIR)/NS_octave;

$(GPGPROGLAUNCHBINDIR):
	@mkdir -p $(BINDIR)/NS_gpg;

standard: DIRS C Fortran agent server tools IDLTOPDF tester
all: standard matlab octave pdfgui

install:
	cd ..; \
  mkdir -p $(NS_INSTALL_PREFIX); \
  cp -rf bin lib obj include GPG server_config $(NS_INSTALL_PREFIX)

###########
## GPGPROGLAUNCH ##
###########
NS_gpg_prog_launch: DIRS $(BINDIR)/NS_gpg/NS_gpg_prog_launch

$(BINDIR)/NS_gpg/NS_gpg_prog_launch: $(GPGPROGLAUNCHOBJ)
	mkdir -p $(BINDIR)/NS_gpg;
	@echo Building program $@
	$(CC) $(CFLAGS) -o $@ $(GPGPROGLAUNCHOBJ)


###########
## AGENT ##
###########

agent: DIRS $(BINDIR)/NS_agent $(INFOSERVER)

$(BINDIR)/NS_agent: $(AGENTOBJ) $(NWSUTILOBJ)
	@echo Building program $@
	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(AGENTOBJ) $(NWSUTILOBJ) $(NWSLIBS) $(LIBS) \
       $(AUTH_LIBS) $(IBPLIB)

infoserver: $(BINDIR)/infoserver

$(BINDIR)/infoserver: $(INFOSERVEROBJ)
	@echo Building program $@ of $(INFOSERVEROBJ)
	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(INFOSERVEROBJ) $(LIBS)

############
## SERVER ##
############

server: DIRS NS_gpg_prog_launch $(BINDIR)/code_generator services $(BINDIR)/NS_server update

update: $(NETSOLVE_ROOT)/src/Server/problem_init.c \
                $(SERVEROBJ) $(NWSUTILOBJ) 
	@echo Doing update
	$(CC) -o $(LIBDIR)/libProblemInit.so $(SERVEROBJ) $(SHARED_LIB_FLAGS) $(NWSUTILOBJ) $(IBPLIB)
	

$(BINDIR)/code_generator: $(CODEGENERATOROBJ)
	@echo Building program $@
	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(CODEGENERATOROBJ) $(LIBS) $(IBPLIB)

IDLTOPDF: DIRS $(BINDIR)/idltopdf

services: $(NETSOLVE_ROOT)/src/Makefile.numerical
	@$(MAKE) -f ./Makefile.numerical

$(NETSOLVE_ROOT)/src/Makefile.numerical: $(NETSOLVE_ROOT)/server_config \
               $(BINDIR)/code_generator $(NETSOLVE_ROOT)/problems
	$(BINDIR)/code_generator

$(BINDIR)/NS_server: $(NETSOLVE_ROOT)/src/Server/problem_init.c \
                $(SERVEROBJ) $(NWSUTILOBJ)
	@echo Building program $@
	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(SERVEROBJ) $(NWSUTILOBJ) $(NWSLIBS)\
		$(LIBS) $(AUTH_LIBS) $(IBPLIB) $(DLOPEN_LIBS)

######################
## CLIENT LIBRARIES ##
######################

#=============#
# C Libraries #
#=============#
C: DIRS $(LIBDIR)/libnetsolve.a $(BINDIR)/netsolveproxy

$(LIBDIR)/libnetsolve.a:$(CCLIENTOBJ) $(IBPOBJS_STUB)
	@echo Building library $@
	$(AR) $(ARFLAGS) $@ $(CCLIENTOBJ) $(IBPOBJS)
	$(RANLIB) $@

#===================#
# GridRPC Interface #
#===================#
gridrpc: gridrpclib $(BINDIR)/C_test_grpc

gridrpclib: C $(LIBDIR)/libnsgrpc.a

$(LIBDIR)/libnsgrpc.a: $(NSGRPCOBJ)
	@echo Building library $@
	$(AR) $(ARFLAGS) $@ $(NSGRPCOBJ)
	$(RANLIB) $@

$(BINDIR)/C_test_grpc: gridrpclib $(NSGRPCTESTOBJ) $(LIBDIR)/libnetsolve.a
	@echo Building program $@
	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(NSGRPCTESTOBJ) \
           $(LIBDIR)/libnsgrpc.a $(LIBDIR)/libnetsolve.a $(LIBS) \
           $(AUTH_LIBS) 

#===================#
# Fortran Libraries #
#===================#
#Fortran: $(LIBDIR)/libfnetsolve.a $(BINDIR)/netsolveproxy $(BINDIR)/globusproxy
Fortran: DIRS $(LIBDIR)/libfnetsolve.a $(BINDIR)/netsolveproxy

$(LIBDIR)/libfnetsolve.a:$(FORTRANCLIENTOBJ) $(IBPOBJS_STUB)
	@echo Building library $@
	$(AR) $(ARFLAGS) $@ $(FORTRANCLIENTOBJ) $(IBPOBJS)
	$(RANLIB) $@

IBPOBJS_STUB:
	@echo Extracting IBP object files
	$(AR) x $(IBPLIB) $(IBPOBJS)

#===================#
# Matlab Libraries #
#===================#
#matlab:	 $(BINDIR)/netsolveproxy $(BINDIR)/globusproxy
#matlab:	 $(BINDIR)/netsolveproxy
#cd Matlab; $(MAKE) matlab

matlab: DIRS $(MATLABBINDIR) $(BINDIR)/netsolveproxy $(MATLABOBJDIR) \
        $(MATLABBINDIR)/netsolve$(MEXEXT) \
        $(MATLABBINDIR)/netsolve_err$(MEXEXT) \
        $(MATLABBINDIR)/netsolve_errmsg$(MEXEXT) \
        $(MATLABBINDIR)/netsolve_nb$(MEXEXT) \
        $(MATLABBINDIR)/netsolve_farm$(MEXEXT)


$(MATLABBINDIR)/netsolve_errmsg$(MEXEXT): $(MATLABERRMSGOBJ)
	@echo Building Matlab external function $@ ; \
    cd $(MATLABOBJDIR); \
    $(MEX) $(NS_MEXFLAGS) $(NETSOLVE_ROOT)/src/Matlab/dummy.c \
      -output $(MATLABBINDIR)/netsolve_errmsg $(MATLABERRMSGOBJ)

$(MATLABBINDIR)/netsolve_err$(MEXEXT): $(MATLABERROBJ)
	@echo Building Matlab external function $@ ; \
    cd $(MATLABOBJDIR); \
    $(MEX) $(NS_MEXFLAGS) $(NETSOLVE_ROOT)/src/Matlab/dummy.c \
      -output $(MATLABBINDIR)/netsolve_err $(MATLABERROBJ)

$(MATLABBINDIR)/netsolve$(MEXEXT): $(MATLABOBJ) $(MATLABINITOBJ) $(AUTH_LIBS)
	@echo Building Matlab external function $@ ; \
    cd $(MATLABOBJDIR); \
    $(MEX) $(NS_MEXFLAGS) $(NETSOLVE_ROOT)/src/Matlab/dummy.c \
      -output $(MATLABBINDIR)/netsolve $(MATLABOBJ) $(MATLABINITOBJ)

$(MATLABBINDIR)/netsolve_nb$(MEXEXT): $(MATLABNBOBJ) $(MATLABINITOBJ) $(AUTH_LIBS)
	@echo Building Matlab external function $@ ; \
    cd $(MATLABOBJDIR); \
    $(MEX) $(NS_MEXFLAGS) $(NETSOLVE_ROOT)/src/Matlab/dummy.c \
      -output $(MATLABBINDIR)/netsolve_nb $(MATLABNBOBJ) $(MATLABINITOBJ)

$(MATLABBINDIR)/netsolve_farm$(MEXEXT): $(MATLABFARMOBJ) $(MATLABINITOBJ) $(AUTH_LIBS)
	@echo Building Matlab external function $@ ; \
    cd $(MATLABOBJDIR); \
    $(MEX) $(NS_MEXFLAGS) $(NETSOLVE_ROOT)/src/Matlab/dummy.c \
      -output $(MATLABBINDIR)/netsolve_farm $(MATLABFARMOBJ) $(MATLABINITOBJ)

#=======================#
# Mathematica Libraries #
#=======================#
#mathematica: $(BINDIR)/netsolveproxy $(BINDIR)/globusproxy
#mathematica: $(BINDIR)/netsolveproxy
#cd Mathematica; $(MAKE) mathematica

mathematica: DIRS  $(BINDIR)/netsolveproxy $(BINDIR) $(MATHOBJDIR) $(NSMATH_BINDIR)/NS_math

$(NSMATH_BINDIR)/NS_math:       $(NSMATH_OBJS) $(MATHCLIENTOBJS)
	@echo "*** Linking " $@ "..."
	$(CC) $(NSMATH_OBJS) $(MATHCLIENTOBJS) $(NSMATH_LIBPATH) $(NSMATH_LIBS) -lnsl -o $@

#=========#
# Proxies #
#=========#
$(BINDIR)/netsolveproxy: $(PROXYOBJ) $(NSPROXYOBJ)
	@echo Building program $@
	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(PROXYOBJ) $(NSPROXYOBJ) $(LIBS) \
                $(AUTH_LIBS) $(IBPLIB)

$(BINDIR)/globusproxy: $(PROXYOBJ) $(GLOBUSPROXYOBJ)
	@echo Building program $@
	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(PROXYOBJ) $(GLOBUSPROXYOBJ) $(LDAP_LIBS) \
           $(LDAP_LDFLAGS) $(G_LDFLAGS) $(G_LIBS) $(LIBS) $(IBPLIB)

###################
## TEST PROGRAMS ##
###################
tester:	DIRS C Fortran $(BINDIR)/C_test \
        $(BINDIR)/F_test $(BINDIR)/farm_test $(BINDIR)/sequence_test \
        $(BINDIR)/ibp_test
	cp $(NETSOLVE_ROOT)/src/Testing/Test $(BINDIR)

$(BINDIR)/C_test: $(CTESTOBJ) $(LIBDIR)/libnetsolve.a
	@echo Building program $@
	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(CTESTOBJ) $(LIBDIR)/libnetsolve.a $(LIBS) \
                $(AUTH_LIBS)
	cp $(NETSOLVE_ROOT)/src/Testing/upf.f $(BINDIR)
	cp $(NETSOLVE_ROOT)/src/Testing/toto.f $(BINDIR)

$(BINDIR)/F_test: $(FTESTOBJ) $(LIBDIR)/libfnetsolve.a
	@echo Building program $@
	$(FC) $(LDFLAGS) $(FFLAGS) -o $@ $(FTESTOBJ) $(LIBDIR)/libfnetsolve.a $(LIBS) \
                $(AUTH_LIBS)
	cp $(NETSOLVE_ROOT)/src/Testing/upf.f $(BINDIR)
	cp $(NETSOLVE_ROOT)/src/Testing/toto.f $(BINDIR)

$(BINDIR)/farm_test: $(FARMTESTOBJ) $(LIBDIR)/libnetsolve.a
	@echo Building program $@
	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(FARMTESTOBJ) $(LIBDIR)/libnetsolve.a $(LIBS) \
                $(AUTH_LIBS)

$(BINDIR)/sequence_test: $(SEQUENCETESTOBJ) $(LIBDIR)/libnetsolve.a
	@echo Building program $@
	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(SEQUENCETESTOBJ) $(LIBDIR)/libnetsolve.a \
                $(LIBS) $(AUTH_LIBS)

$(BINDIR)/ibp_test: $(NETSOLVE_ROOT)/src/Testing/ibp_test.c $(LIBDIR)/libnetsolve.a
	@echo Building program $@
	$(CC) $(LDFLAGS) $(NS_CFLAGS) -o $@  $(NETSOLVE_ROOT)/src/Testing/ibp_test.c \
                $(LIBDIR)/libnetsolve.a $(LIBS) $(AUTH_LIBS)

#===================#
# Regression Testing #
#===================#
TESTS = dgemm dgemmseq

regress: C $(TESTS)
	@for i in $(TESTS); do $(BINDIR)/test_$$i; done
	@echo "-------------------------------------------"
	@echo " TEST TIMINGS (secs):"
	@for i in $(TESTS); do \
        echo "( $$i ):"; \
        cat test_$$i.time; \
        done
	@echo "-------------------------------------------"
	@echo " TEST RESULTS:"
	@for i in $(TESTS); do \
        if grep FAIL test_$$i.result ; \
        then echo "test_$$i: TEST HAD FAILURE(s)";\
          cat test_$$i.result; \
        else echo "test_$$i: ALL OK"; \
        fi; \
        done
	@echo "-------------------------------------------"

dgemm: $(BINDIR)/test_dgemm
dgemmseq: $(BINDIR)/test_dgemmseq

$(BINDIR)/test_dgemm: $(OBJDIR)/test_dgemm.o $(RTESTLIBS) 
	@echo Building program $@ ...
	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(OBJDIR)/test_dgemm.o $(NS_CFLAGS) \
             $(RTESTLIBS) $(LIBDIR)/libnetsolve.a $(LIBS) \
                $(AUTH_LIBS)

   
$(BINDIR)/test_dgemmseq: $(OBJDIR)/test_dgemmseq.o $(RTESTLIBS)
	@echo Building program $@ ...
	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(NS_CFLAGS) $(OBJDIR)/test_dgemmseq.o \
             $(RTESTLIBS) $(LIBDIR)/libnetsolve.a $(LIBS) \
                $(AUTH_LIBS)

####################
## NetSolve TOOLS ##
####################
tools: DIRS $(BINDIR)/netsolveproxy $(BINDIR)/NS_config $(BINDIR)/NS_killagent \
      $(BINDIR)/NS_killserver $(BINDIR)/NS_problems \
      $(BINDIR)/NS_probdesc $(BINDIR)/NS_updateserver

$(BINDIR)/NS_config: $(NSCONFOBJ)
	@echo Building program $@
	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(NSCONFOBJ) $(LIBS) \
                $(AUTH_LIBS) $(IBPLIB)

$(BINDIR)/NS_killagent: $(NSKILLAGENTOBJ)
	@echo Building program $@
	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(NSKILLAGENTOBJ) $(LIBS) \
                $(AUTH_LIBS) $(IBPLIB)

$(BINDIR)/NS_killserver: $(NSKILLSERVEROBJ)
	@echo Building program $@
	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(NSKILLSERVEROBJ) $(LIBS) \
                $(AUTH_LIBS) $(IBPLIB)

$(BINDIR)/NS_problems: $(NSPROBLEMSOBJ)
	@echo Building program $@
	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(NSPROBLEMSOBJ) $(LIBS) \
                $(AUTH_LIBS) $(IBPLIB)

$(BINDIR)/NS_probdesc: $(NSPROBLEMDESCOBJ)
	@echo Building program $@
	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(NSPROBLEMDESCOBJ) $(LIBS) \
                $(AUTH_LIBS) $(IBPLIB)


$(BINDIR)/NS_updateserver: $(NSUPDATESERVEROBJ)
	@echo Building program $@
	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(NSUPDATESERVEROBJ) $(LIBS) \
                $(AUTH_LIBS) $(IBPLIB)

############
## IDLTOPDF ##
############

$(BINDIR)/idltopdf: $(IDLTOPDFOBJ)
	@echo Building program $@ $(IDLTOPDFOBJ)
	$(CC) $(CFLAGS) -o $@ $(IDLTOPDFOBJ)

############
## PDFGUI ##
############
pdfgui: DIRS $(BINDIR)/NS_pdfgui

$(BINDIR)/NS_pdfgui: $(PDGUIOBJ)
	@echo Building $@
	@/bin/rm -f $@
	@echo "#! /bin/sh" > $@
	@echo "java -classpath $(PDFGUICLASSDIR):$(NETSOLVE_ROOT)/src/PDF_GUI/classes XMLPDGUI" >> $@
	@chmod 755 $@

############
## OCTAVE ##
############
octave: DIRS $(BINDIR)/netsolveproxy $(OCTAVEOBJDIR) $(OCTOBJ)  
	echo Changing directory to Octave...; \
	cd Octave; \
	echo Building netsolve shared libraries...; \
	$(CC) -shared -o libnsoct.so $(OCTOBJ); \
	mv $(NETSOLVE_ROOT)/include/client.h $(NETSOLVE_ROOT)/include/NSclient.h; \
	mv $(NETSOLVE_ROOT)/include/general.h $(NETSOLVE_ROOT)/include/NSgeneral.h; \
	mv $(NETSOLVE_ROOT)/include/netsolve.h $(NETSOLVE_ROOT)/include/NSnetsolve.h; \
	cp include/*.h $(NETSOLVE_ROOT)/include/.; \
	echo Building netsolve.oct file...; \
	$(MKOCTFILE) netsolve.cc octinitializeinputobjects.cc octfillinoutputobjects.cc octgetprpi.cc \
                  octproxyport.cc octgetnetsolveagent.c octnetsolverror.c octstartproxy.c \
                  octdisplaylistofproblems.c octdisplaylistofserversagents.c octdisplayproblemdesc.c \
                  octdisplayobject.c octnetsolveinfo.c octnetsolvesizeof.c octfree.c octcreateobject.c \
                  octinitializeoutputobjects.c octsubmitproblem.c \
                  -I$(NETSOLVE_ROOT)/include/ -I$(OCTAVE_INC_DIR) \
                  -L$(NETSOLVE_ROOT)/src/Octave -lnsoct $(LIBS); \
	echo Building netsolve_nb.oct file...; \
	$(MKOCTFILE) netsolve_nb.cc octinitializeinputobjects.cc octfillinoutputobjects.cc \
                  octsendrequest.cc octwaitrequest.cc octproberequest.cc octgetprpi.cc \
                  octinitializeoutputobjects.c octparsenbcommand.c octfree.c octnetsolveinfo.c \
                  octproxyport.cc octgetnetsolveagent.c octnetsolverror.c octstartproxy.c \
                  octnetsolvesendrequest.c octnetsolvewaitrequest.c octnetsolveproberequest.c \
                  octdisplayrequeststatus.c octnetsolvesizeof.c octcreateobject.c \
                  -I$(NETSOLVE_ROOT)/include/ -I$(OCTAVE_INC_DIR) \
                  -L$(NETSOLVE_ROOT)/src/Octave -lnsoct $(LIBS); \
	mv $(NETSOLVE_ROOT)/include/NSclient.h $(NETSOLVE_ROOT)/include/client.h; \
	mv $(NETSOLVE_ROOT)/include/NSgeneral.h $(NETSOLVE_ROOT)/include/general.h; \
	mv $(NETSOLVE_ROOT)/include/NSnetsolve.h $(NETSOLVE_ROOT)/include/netsolve.h; \
	echo Copying files to $(BINDIR)...; \
	mv *.oct $(BINDIR)/NS_octave/.; \
	mv libnsoct.so $(BINDIR)/NS_octave/.; \
	cp $(NETSOLVE_ROOT)/src/Testing/octave/*.m $(BINDIR)/NS_octave/.; \
	rm *.o; \
	echo Leaving Octave directory.; \
	cd ..;


###################
## MISCELLANEOUS ##
###################

#==============#
# MCell Driver #
#==============#
mcell: DIRS $(BINDIR)/mcelldriver

$(BINDIR)/mcelldriver: $(MCELLDRIVEROBJ) C
	@echo Building program $@
	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(MCELLDRIVEROBJ) $(LIBDIR)/libnetsolve.a \
                $(LIBS) $(AUTH_LIBS)

#===============#
# Window Client #
#===============#
win32:
	@$(MAKE) -f Makefile.win32

#========================#
# Sparse Solver Wrappers #
#========================#
wrappers: wrappers-clean
	( cd $(NETSOLVE_ROOT)/src/SampleNumericalSoftware/ITPACK; $(MAKE) )
	( cd $(NETSOLVE_ROOT)/src/SampleNumericalSoftware/MA28; $(MAKE) )
	( cd $(NETSOLVE_ROOT)/src/SampleNumericalSoftware/SparseSolvers/sparse; $(MAKE) "NETSOLVE_ROOT=${NETSOLVE_ROOT}" libfiles )
	( cd $(NETSOLVE_ROOT)/src/SampleNumericalSoftware/SparseSolvers/eigen; $(MAKE) "NETSOLVE_ROOT=${NETSOLVE_ROOT}" libfiles )

####################################
## CLEANUP and DISTRIBUTION STUFF ##
####################################
clean: 
	- $(MAKE) wrappers-clean
	- $(MAKE) idltopdf-clean
	- rm -rf $(OBJDIR) $(LIBDIR) $(BINDIR) .depend \
          Makefile.numerical Makefile.num_libs \
          $(NETSOLVE_ROOT)/src/Server/numerical-*.c \
          $(NETSOLVE_ROOT)/src/Server/problem_init.c \
	  $(NETSOLVE_ROOT)/libProblemInit.so
	- rm -f $(IBPOBJS)
	cd GridRPC; $(MAKE) clean

configclean:
	-rm -rf $(NETSOLVE_ROOT)/config.* \
            $(NETSOLVE_ROOT)/confdefs.h \
            $(NETSOLVE_ROOT)/Makefile \
            $(NETSOLVE_ROOT)/include/sysconf.h \
            $(NETSOLVE_ROOT)/conf/*.inc

CLEAN: wrappers-clean idltopdf-clean
	 -rm -rf ../obj ../bin ../lib .depend \
          Makefile.numerical Makefile.num_libs \
          $(NETSOLVE_ROOT)/src/Server/numerical-*.c \
	  $(NETSOLVE_ROOT)/libProblemInit.so \
          $(NETSOLVE_ROOT)/src/Server/problem_init.c; \
          cd $(NETSOLVE_ROOT)/src/Testing; $(MAKE) clean
	/bin/rm -f $(IBPOBJS)
	cd GridRPC; $(MAKE) clean

wrappers-clean:
	( cd $(NETSOLVE_ROOT)/src/SampleNumericalSoftware/SparseSolvers; $(MAKE) "NETSOLVE_ROOT=${NETSOLVE_ROOT}" clean )
	( cd $(NETSOLVE_ROOT)/src/SampleNumericalSoftware/SparseSolvers/sparse/lib; $(MAKE) "NETSOLVE_ROOT=${NETSOLVE_ROOT}" deletelibs )
	( cd $(NETSOLVE_ROOT)/src/SampleNumericalSoftware/SparseSolvers/eigen; $(MAKE) "NETSOLVE_ROOT=${NETSOLVE_ROOT}" clean )

idltopdf-clean:
	rm -f $(NETSOLVE_ROOT)/src/idltopdf/netsolve_idl_l.c \
	$(NETSOLVE_ROOT)/src/idltopdf/netsolve_idl.output \
	$(NETSOLVE_ROOT)/src/idltopdf/netsolve_idl.tab.c \
	$(NETSOLVE_ROOT)/src/idltopdf/netsolve_idl.tab.h

dist:
	-@tmpdir=/tmp &&\
	 packname=NetSolve-$(NETSOLVE_VERSION) &&\
	 echo "Doing a cvs export to $$tmpdir/$$packname ..." &&\
     cd $$tmpdir && \
     cvs export -r netsolve-1-4 -d $$packname NetSolve && \
     echo Cleaning up non-distributable stuff ... &&\
	 /bin/rm -rf $$tmpdir/$$packname/src/cgi-src &&\
	 echo "Preparing a compressed tar file ($$packname.tgz) ..." &&\
	 tar cf - $$packname | gzip -9c > $(HOME)/$$packname.tgz &&\
	 echo "$(HOME)/$$packname.tgz has been successfully created:" &&\
     cd $(HOME) ; ls -l $$packname.tgz && \
	 echo Cleaning tmp directory ... &&\
	 /bin/rm -rf $$tmpdir/$$packname
