222 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			222 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| ################################################################
 | |
| # Makefile template for SWI-Prolog CLIB package
 | |
| #
 | |
| # This template is used by configure to create Makefile.  See
 | |
| # the file INSTALL for further installation instructions.
 | |
| #
 | |
| # License: LGPL
 | |
| #
 | |
| # Author: Jan Wielemaker (wielemak@science.uva.nl)
 | |
| ################################################################
 | |
| 
 | |
| .SUFFIXES: .tex .dvi .doc .pl
 | |
| 
 | |
| PL=../swipl.sh
 | |
| PLBASE=/home/vsc/Yap/Prologs/pl-devel/lib/swipl-5.9.11
 | |
| PLARCH=x86_64-linux
 | |
| PLINCL=/home/vsc/Yap/Prologs/pl-devel/include
 | |
| PKGDOC=$(PLBASE)/doc/packages
 | |
| PCEHOME=../xpce
 | |
| 
 | |
| CC=../swipl-ld.sh
 | |
| COFLAGS=-O2 -fno-strict-aliasing
 | |
| CWFLAGS=-Wall
 | |
| CMFLAGS=-fPIC
 | |
| CIFLAGS=-I. -Imaildrop/rfc2045 -Imaildrop/rfc822
 | |
| CFLAGS=$(COFLAGS) $(CWFLAGS) $(CMFLAGS) $(CIFLAGS) -DHAVE_CONFIG_H
 | |
| LIBS=
 | |
| NETLIBS=
 | |
| CRYPTLIBS=-lcrypt 
 | |
| MIMELIBS=maildrop/rfc2045/librfc2045.a maildrop/rfc822/librfc822.a
 | |
| 
 | |
| PUBLICPL=swipl
 | |
| DOCTOTEX=$(PCEHOME)/bin/doc2tex
 | |
| PLTOTEX=$(PUBLICPL) -q -s pltotex.pl -g pltotex --
 | |
| DOC=clib
 | |
| TEX=$(DOC).tex process.tex uri.tex
 | |
| DVI=$(DOC).dvi
 | |
| PDF=$(DOC).pdf
 | |
| RUNTEX=../../man/runtex
 | |
| 
 | |
| LD=../swipl-ld.sh
 | |
| LDFLAGS=-shared
 | |
| 
 | |
| INSTALL=/usr/bin/install -c
 | |
| INSTALL_PROGRAM=${INSTALL}
 | |
| INSTALL_DATA=/usr/bin/install -c -m 644
 | |
| 
 | |
| LIBPL=		random.pl unix.pl socket.pl cgi.pl memfile.pl filesex.pl mime.pl crypt.pl time.pl rlimit.pl streampool.pl streaminfo.pl process.pl prolog_server.pl sha.pl \
 | |
| 		uri.pl
 | |
| TARGETS=	random.so unix.so socket.so cgi.so memfile.so files.so mime.so crypt.so time.so rlimit.so readutil.so streaminfo.so process.so \
 | |
| 		sha4pl.so uri.so
 | |
| 
 | |
| UNXOBJ=		error.o unix.o
 | |
| SOCKOBJ=	error.o socket.o nonblockio.o
 | |
| CGIOBJ=		error.o form.o cgi.o
 | |
| CRYPTOBJ=	error.o crypt.o md5.o md5passwd.o
 | |
| MEMOBJ=		error.o memfile.o
 | |
| MIMEOBJ=	error.o mime.o
 | |
| TIMEOBJ=	error.o time.o
 | |
| FILESOBJ=	error.o files.o
 | |
| RLIMITOBJ=	error.o rlimit.o
 | |
| URIOBJ=		uri.o
 | |
| RANDOMOBJ=	random.o
 | |
| READUTILOBJ=	readutil.o
 | |
| PROCESSOBJ=	error.o process.o
 | |
| STREAMINFOOBJ=	error.o streaminfo.o
 | |
| SHAOBJ=		error.o sha4pl.o sha1/sha1.o sha1/sha2.o \
 | |
| 		sha1/hmac_sha1.o sha1/hmac_sha256.o
 | |
| 
 | |
| all:		$(TARGETS)
 | |
| 
 | |
| random.so:	$(RANDOMOBJ)
 | |
| 		$(LD) $(LDFLAGS) -o $@ $(RANDOMOBJ)
 | |
| unix.so:	$(UNXOBJ)
 | |
| 		$(LD) $(LDFLAGS) -o $@ $(UNXOBJ)
 | |
| socket.so:	$(SOCKOBJ)
 | |
| 		$(LD) $(LDFLAGS) -o $@ $(SOCKOBJ) $(NETLIBS)
 | |
| cgi.so:	$(CGIOBJ)
 | |
| 		$(LD) $(LDFLAGS) -o $@ $(CGIOBJ)
 | |
| crypt.so:	$(CRYPTOBJ)
 | |
| 		$(LD) $(LDFLAGS) -o $@ $(CRYPTOBJ) $(CRYPTLIBS)
 | |
| memfile.so:	$(MEMOBJ)
 | |
| 		$(LD) $(LDFLAGS) -o $@ $(MEMOBJ) $(LIBS)
 | |
| mime.so:	$(MIMEOBJ) $(MIMELIBS)
 | |
| 		$(LD) $(LDFLAGS) -o $@ $(MIMEOBJ) $(MIMELIBS)
 | |
| time.so:	$(TIMEOBJ)
 | |
| 		$(LD) $(LDFLAGS) -o $@ $(TIMEOBJ) $(LIBS)
 | |
| files.so:	$(FILESOBJ)
 | |
| 		$(LD) $(LDFLAGS) -o $@ $(FILESOBJ) $(LIBS)
 | |
| rlimit.so:	$(RLIMITOBJ)
 | |
| 		$(LD) $(LDFLAGS) -o $@ $(RLIMITOBJ) $(LIBS)
 | |
| readutil.so:	$(READUTILOBJ)
 | |
| 		$(LD) $(LDFLAGS) -o $@ $(READUTILOBJ)
 | |
| process.so:	$(PROCESSOBJ)
 | |
| 		$(LD) $(LDFLAGS) -o $@ $(PROCESSOBJ)
 | |
| streaminfo.so: $(STREAMINFOOBJ)
 | |
| 		$(LD) $(LDFLAGS) -o $@ $(STREAMINFOOBJ)
 | |
| sha4pl.so:	$(SHAOBJ)
 | |
| 		$(LD) $(LDFLAGS) -o $@ $(SHAOBJ)
 | |
| uri.so:	$(URIOBJ)
 | |
| 		$(LD) $(LDFLAGS) -o $@ $(URIOBJ)
 | |
| 
 | |
| socket.o:	socket.c sockcommon.c
 | |
| 
 | |
| sha1/hmac_sha1.o:
 | |
| 		$(CC) -c $(CFLAGS) -DUSE_SHA1 -o $@ sha1/hmac.c
 | |
| sha1/hmac_sha256.o:
 | |
| 		$(CC) -c $(CFLAGS) -DUSE_SHA256 -o $@ sha1/hmac.c
 | |
| 
 | |
| maildrop/rfc822/librfc822.a:
 | |
| 		(cd maildrop/rfc822 && $(MAKE))
 | |
| maildrop/rfc2045/librfc2045.a:
 | |
| 		(cd maildrop/rfc2045 && $(MAKE))
 | |
| 
 | |
| 
 | |
| install:	$(TARGETS) $(LIBPL)
 | |
| 		mkdir -p $(DESTDIR)$(PLBASE)/lib/$(PLARCH)
 | |
| 		for f in $(TARGETS); do \
 | |
| 		  $(INSTALL_PROGRAM) $$f $(DESTDIR)$(PLBASE)/lib/$(PLARCH); \
 | |
| 		done
 | |
| 		mkdir -p $(DESTDIR)$(PLBASE)/library
 | |
| 		for f in $(LIBPL); do \
 | |
| 		  $(INSTALL_DATA) $$f $(DESTDIR)$(PLBASE)/library; \
 | |
| 		done
 | |
| 		$(PL) -f none -g make -t halt
 | |
| 
 | |
| ln-install::
 | |
| 		@$(MAKE) INSTALL_DATA='../ln-install' INSTALL_PROGRAM='../ln-install' install
 | |
| 
 | |
| rpm-install:	install
 | |
| 
 | |
| html-install::
 | |
| 		mkdir -p $(DESTDIR)$(PKGDOC)
 | |
| 		$(INSTALL) -m 644 clib.html $(DESTDIR)$(PKGDOC)
 | |
| 
 | |
| pdf-install::
 | |
| 		mkdir -p $(DESTDIR)$(PKGDOC)
 | |
| 		$(INSTALL) -m 644 clib.pdf $(DESTDIR)$(PKGDOC)
 | |
| 
 | |
| uninstall::
 | |
| 		(cd $(PLBASE)/lib/$(PLARCH) && rm -f $(TARGETS))
 | |
| 		(cd $(PLBASE)/library && rm -f $(LIBPL))
 | |
| 		$(PL) -f none -g make -t halt
 | |
| 
 | |
| ################################################################
 | |
| # Testing
 | |
| ################################################################
 | |
| 
 | |
| check:		check-socket check-memfile check-unit check-process \
 | |
| 		check-read check-uri check-cgi
 | |
| 
 | |
| torture:	torture-socket
 | |
| 
 | |
| check-socket::
 | |
| 		$(PL) -q -f test_socket.pl -F none -g test_socket,halt -t 'halt(1)'
 | |
| 
 | |
| torture-socket::
 | |
| 		$(PL) -q -f stresssocket.pl -F none -g test,halt -t 'halt(1)'
 | |
| 
 | |
| check-memfile::
 | |
| 		$(PL) -q -f test_memfile.pl -F none -g test_memfile,halt -t 'halt(1)'
 | |
| 
 | |
| check-unit::
 | |
| 		$(PL) -q -f test.pl -g run_tests,halt -t 'halt(1)'
 | |
| 
 | |
| check-uri::
 | |
| 		$(PL) -q -f test_uri.pl -g true -t test_uri
 | |
| 
 | |
| check-cgi::
 | |
| 		$(PL) -q -f test_cgi.pl -g true -t test_cgi
 | |
| 
 | |
| check-process::
 | |
| 		$(PL) -q -f test_process.pl -g true -t test_process
 | |
| 
 | |
| check-read::
 | |
| 		$(PL) -q -f test_readutil.pl -g true -t test_readutil
 | |
| 
 | |
| ################################################################
 | |
| # Documentation
 | |
| ################################################################
 | |
| 
 | |
| pdf:		$(PDF)
 | |
| 
 | |
| $(DVI):		$(TEX)
 | |
| 		$(RUNTEX) $(DOC)
 | |
| 
 | |
| $(PDF):		$(TEX)
 | |
| 		$(RUNTEX) --pdf $(DOC)
 | |
| 
 | |
| html:		$(TEX)
 | |
| 		latex2html $(DOC)
 | |
| 		mv html/index.html clib.html
 | |
| 		rm -r html
 | |
| 
 | |
| $(TEX):		$(DOCTOTEX)
 | |
| 
 | |
| uri.tex:	uri.pl
 | |
| 		$(PLTOTEX) 'library(uri)'
 | |
| process.tex:	process.pl
 | |
| 		$(PLTOTEX) 'library(process)'
 | |
| 
 | |
| .doc.tex:
 | |
| 		$(DOCTOTEX) $*.doc > $*.tex
 | |
| 
 | |
| 
 | |
| ################################################################
 | |
| # Clean
 | |
| ################################################################
 | |
| 
 | |
| clean:
 | |
| 		rm -f $(OBJ) *~ *.o *% a.out core config.log sha1/*.o
 | |
| 		rm -f $(TEX)
 | |
| 		-(cd maildrop/rfc822 && $(MAKE) clean)
 | |
| 		-(cd maildrop/rfc2045 && $(MAKE) clean)
 | |
| 
 | |
| distclean:	clean
 | |
| 		rm -f $(TARGETS) config.cache config.h config.status Makefile
 | |
| 		rm -f clib.aux clib.log clib.out clib.toc
 | |
| 		rm -rf html
 | |
| 		-(cd maildrop/rfc822 && $(MAKE) distclean)
 | |
| 		-(cd maildrop/rfc2045 && $(MAKE) distclean)
 |