Index: b/src/cgi.c =================================================================== --- a/src/cgi.c +++ b/src/cgi.c @@ -336,7 +336,7 @@ hextable['b'] = 11; hextable['c'] = 12; hextable['d'] = 13; - hextable['e'] = 13; + hextable['e'] = 14; hextable['f'] = 15; hextable['A'] = 10; hextable['B'] = 11; Index: b/src/string.c =================================================================== --- a/src/string.c +++ b/src/string.c @@ -584,7 +584,7 @@ va_start(ptr, s); - va_copy(bkp, str); + va_copy(bkp, ptr); len = strlen(s); while (*str) { Index: b/Makefile.in =================================================================== --- a/Makefile.in +++ b/Makefile.in @@ -5,22 +5,32 @@ prefix = @prefix@ exec_prefix = @exec_prefix@ -SHAREDOPT = -shared +SHAREDOPT = -shared -fPIC -Wl,-soname,libcgi.so.0 LIBDIR = $(prefix)/lib -INCDIR = $(prefix)/include +INCDIR = $(prefix)/include/libcgi/ MANDIR = $(prefix)/man/man3 SHELL = /bin/sh EXTRA_LIBS = INCS = -Isrc -FLAGS = -Wall -fpic +FLAGS = -Wall -D_REENTRANT OBJS = src/error.o src/cgi.o src/session.o src/base64.o src/md5.o \ src/string.o src/general.o src/list.o src/cookie.o +SHOBJS=$(OBJS:.o=.sh.o) -.c.o: $(CC) $(FLAGS) -c $< +ALL_TARGETS = src/libcgi.a +ifeq ($(STATIC),) +ALL_TARGETS += src/libcgi.so +endif -all: $(OBJS) src/libcgi.so +%.o: %.c + $(CC) $(FLAGS) -c $*.c -o $@ + +%.sh.o: %.c + $(CC) $(FLAGS) -fPIC -c $*.c -o $@ + +all: $(ALL_TARGETS) @echo "" @echo "" @@ -48,14 +58,17 @@ src/libcgi.a: $(OBJS) $(AR) rc src/libcgi.a $(OBJS) -src/libcgi.so: src/libcgi.a - $(CC) $(SHAREDOPT) -o src/libcgi.so $(OBJS) $(EXTRA_LIBS) +src/libcgi.so: $(SHOBJS) + $(CC) $(SHAREDOPT) -o src/libcgi.so $(SHOBJS) $(EXTRA_LIBS) install: - cp src/libcgi.a $(LIBDIR) - cp src/libcgi.so $(LIBDIR) - cp src/cgi.h $(INCDIR) - cp src/session.h $(INCDIR) + cp src/libcgi.a $(DESTDIR)/$(LIBDIR) +ifeq ($(STATIC),) + cp src/libcgi.so $(DESTDIR)/$(LIBDIR) +endif + [ -d $(DESTDIR)/$(INCDIR) ] || mkdir -p $(DESTDIR)/$(INCDIR) + cp src/cgi.h $(DESTDIR)/$(INCDIR) + cp src/session.h $(DESTDIR)/$(INCDIR) src/error.o: src/error.c src/error.h @@ -69,8 +82,9 @@ src/list.o: src/list.c clean: - find src/ -name *.*o -exec rm -f {} \; + find src/ -name *.o -exec rm -f {} \; find src/ -name *.a -exec rm -f {} \; + find src/ -name *.so -exec rm -f {} \; uninstall: clean rm -f $(LIBDIR)/libcgi.* @@ -78,11 +92,11 @@ rm -f $(INCDIR)/session.h rm -f $(MANDIR)/libcgi* -install_man: - cp doc/man/man3/libcgi_base64.3 $(MANDIR) - cp doc/man/man3/libcgi_cgi.3 $(MANDIR) - cp doc/man/man3/libcgi_general.3 $(MANDIR) - cp doc/man/man3/libcgi_string.3 $(MANDIR) - cp doc/man/man3/libcgi_session.3 $(MANDIR) - cp doc/man/man3/libcgi_cookie.3 $(MANDIR) +#install_man: +# cp doc/man/man3/libcgi_base64.3 $(MANDIR) +# cp doc/man/man3/libcgi_cgi.3 $(MANDIR) +# cp doc/man/man3/libcgi_general.3 $(MANDIR) +# cp doc/man/man3/libcgi_string.3 $(MANDIR) +# cp doc/man/man3/libcgi_session.3 $(MANDIR) +# cp doc/man/man3/libcgi_cookie.3 $(MANDIR)