dgaudet 97/11/05 04:48:26
Modified: src .cvsignore CHANGES Configure Makefile.tmpl
src/main conf.h http_core.c http_main.c
src/modules/proxy proxy_cache.c
src/regex .cvsignore mkh
Added: src/helpers PrintPathOS2
src/os/emx .cvsignore Makefile.tmpl os-inline.c os.c os.h
src/regex Makefile.tmpl
Removed: src/regex Makefile
Log:
OS/2 update. It should now be possible to compile OS/2 from the same
sources as Unix.
Submitted by: Brian Havard <[EMAIL PROTECTED]>
Reviewed by: Dean Gaudet, Paul Sutton, Jim Jagielski
Revision Changes Path
1.10 +1 -0 apachen/src/.cvsignore
Index: .cvsignore
===================================================================
RCS file: /export/home/cvs/apachen/src/.cvsignore,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- .cvsignore 1997/08/25 02:12:26 1.9
+++ .cvsignore 1997/11/05 12:48:10 1.10
@@ -1,3 +1,4 @@
+Makefile
*.dsw
*.mdp
*.ncb
1.486 +3 -0 apachen/src/CHANGES
Index: CHANGES
===================================================================
RCS file: /export/home/cvs/apachen/src/CHANGES,v
retrieving revision 1.485
retrieving revision 1.486
diff -u -r1.485 -r1.486
--- CHANGES 1997/11/05 11:23:21 1.485
+++ CHANGES 1997/11/05 12:48:11 1.486
@@ -1,5 +1,8 @@
Changes with Apache 1.3b3
+ *) OS/2 Port updated; it should be possible to build OS/2 from the same
+ sources as Unix now. [Brian Havard <[EMAIL PROTECTED]>]
+
*) Fix a year formatting bug in mod_usertrack.
[Paul Eggert <[EMAIL PROTECTED]>] PR#1342
1.168 +12 -8 apachen/src/Configure
Index: Configure
===================================================================
RCS file: /export/home/cvs/apachen/src/Configure,v
retrieving revision 1.167
retrieving revision 1.168
diff -u -r1.167 -r1.168
--- Configure 1997/11/05 01:04:52 1.167
+++ Configure 1997/11/05 12:48:12 1.168
@@ -161,7 +161,10 @@
DBM_LIB="-ldbm"
DB_LIB="-ldb"
SHELL="/bin/sh"
-if ./helpers/PrintPath -s ranlib; then
+TARGET="httpd"
+PRINTPATH=PrintPath
+
+if ./helpers/$PRINTPATH -s ranlib; then
RANLIB="ranlib"
else
RANLIB="true"
@@ -235,8 +238,11 @@
DEF_WANTHSREGEX=yes
OS='EMX OS/2'
CFLAGS="$CFLAGS -Zbsd-signals -Zbin-files -DTCPIPV4 -g"
- LIBS="$LIBS -lsocket -llibufc -lbsd"
+ LIBS="$LIBS -lsocket -lufc -lbsd"
DBM_LIB="-lgdbm"
+ TARGET=httpd.exe
+ SHELL=sh
+ PRINTPATH=PrintPathOS2
;;
*-hi-hiux)
OS='HI-UX'
@@ -595,7 +601,7 @@
for compilers in "gcc" "cc" "acc" "c89"
do
lookedfor="$lookedfor $compilers"
- if ./helpers/PrintPath -s $compilers; then
+ if ./helpers/$PRINTPATH -s $compilers; then
COMPILER="$compilers"
break
fi
@@ -990,6 +996,7 @@
echo "SHELL=$SHELL">> Makefile.config
echo "OSDIR=$OSDIR">> Makefile.config
echo "SUBDIRS=$SUBDIRS">> Makefile.config
+echo "TARGET=$TARGET" >> Makefile.config
echo >> Makefile.config
echo "#### End of Configure created section ####">> Makefile.config
@@ -1022,7 +1029,7 @@
#
# directories to create makefiles in
#
-MAKEDIRS="support main $OSDIR"
+MAKEDIRS="support main regex $OSDIR"
for dir in $MAKEDIRS ; do
echo Creating Makefile in $dir
cat Makefile.config $dir/Makefile.tmpl > $dir/Makefile
@@ -1037,10 +1044,7 @@
default: all
all clean ::
- for i in \$(MODULES); do \\
- (cd \$\$i; \\
- \$(MAKE) CC='\$(CC)' AUX_CFLAGS='\$(CFLAGS)' RANLIB='\$(RANLIB)' \$@)
|| exit 1;\\
- done
+ for i in \$(MODULES); do (cd \$\$i; \$(MAKE) CC='\$(CC)'
AUX_CFLAGS='\$(CFLAGS)' RANLIB='\$(RANLIB)' \$@) || exit 1; done
EOF
1.70 +4 -4 apachen/src/Makefile.tmpl
Index: Makefile.tmpl
===================================================================
RCS file: /export/home/cvs/apachen/src/Makefile.tmpl,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -r1.69 -r1.70
--- Makefile.tmpl 1997/10/15 20:30:02 1.69
+++ Makefile.tmpl 1997/11/05 12:48:13 1.70
@@ -17,7 +17,7 @@
.c.o:
$(CC) -c $(INCLUDES) $(CFLAGS) $(SPACER) $<
-all: @@Configuration@@ httpd
+all: @@Configuration@@ $(TARGET)
@@Configuration@@: Configuration.tmpl
@echo "@@Configuration@@ older than Configuration.tmpl, or doesn't
exist."
@@ -26,11 +26,11 @@
@echo "If not, you will at least have to touch @@Configuration@@."
@false
-httpd: subdirs modules.o
+$(TARGET): subdirs modules.o
rm -f buildmark.c
echo 'const char SERVER_BUILT[] = "'`date`'";' > buildmark.c
$(CC) -c $(CFLAGS) buildmark.c
- $(CC) $(CFLAGS) $(LDFLAGS) -o httpd buildmark.o $(OBJS) $(REGLIB)
$(LIBS)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $(TARGET) buildmark.o $(OBJS) $(REGLIB)
$(LIBS)
subdirs:
for i in $(SUBDIRS); do \
@@ -43,7 +43,7 @@
cd support; $(MAKE) CC='$(CC)' AUX_CFLAGS='$(CFLAGS)' RANLIB='$(RANLIB)'
clean:
- rm -f httpd *.o
+ rm -f $(TARGET) *.o
for i in $(SUBDIRS); do \
( cd $$i; $(MAKE) $@ ) || exit 1; \
done
1.1 apachen/src/helpers/PrintPathOS2
Index: PrintPathOS2
===================================================================
#!/bin/sh
# Look for $1 somewhere in $PATH
# will print out the full pathname unless
# called with the '-s' option
#
if [ "x$1" = "x-s" ]; then
shift
else
echo="yes"
fi
for path in `echo $PATH |
sed 's/^;/.;/
s/;;/;.;/g
s/;$/;./
s/;/ /g' `
do
if [ $test_exec_flag $path/$1.exe ] && [ ! -d $path/$1.exe ]; then
if [ "$echo" = "yes" ]; then
echo $path/$1.exe
fi
exit 0
fi
done
exit 1
1.151 +1 -3 apachen/src/main/conf.h
Index: conf.h
===================================================================
RCS file: /export/home/cvs/apachen/src/main/conf.h,v
retrieving revision 1.150
retrieving revision 1.151
diff -u -r1.150 -r1.151
--- conf.h 1997/10/25 01:52:45 1.150
+++ conf.h 1997/11/05 12:48:15 1.151
@@ -59,6 +59,7 @@
/* Have to include sys/stat.h before ../os/win32/os.h so we can override
stat() properly */
+#include <sys/types.h>
#include <sys/stat.h>
#ifdef WIN32
@@ -800,10 +801,7 @@
#endif
#ifndef S_ISLNK
-#ifndef __EMX__
-/* Don't define this for OS/2 */
#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
-#endif
#endif
#ifndef INADDR_NONE
1.134 +1 -1 apachen/src/main/http_core.c
Index: http_core.c
===================================================================
RCS file: /export/home/cvs/apachen/src/main/http_core.c,v
retrieving revision 1.133
retrieving revision 1.134
diff -u -r1.133 -r1.134
--- http_core.c 1997/10/26 20:19:39 1.133
+++ http_core.c 1997/11/05 12:48:16 1.134
@@ -1121,7 +1121,7 @@
"requires SUEXEC wrapper.\n");
}
}
-#if !defined (BIG_SECURITY_HOLE)
+#if !defined (BIG_SECURITY_HOLE) && !defined (__EMX__)
if (cmd->server->server_uid == 0) {
fprintf (stderr,
"Error:\tApache has not been designed to serve pages while running\n"
1.244 +3 -3 apachen/src/main/http_main.c
Index: http_main.c
===================================================================
RCS file: /export/home/cvs/apachen/src/main/http_main.c,v
retrieving revision 1.243
retrieving revision 1.244
diff -u -r1.243 -r1.244
--- http_main.c 1997/11/03 10:11:42 1.243
+++ http_main.c 1997/11/05 12:48:17 1.244
@@ -1228,7 +1228,7 @@
char errstr[MAX_STRING_LEN];
int rc;
- m = (caddr_t) create_shared_heap("\\SHAREMEM\\SCOREBOARD",
HARD_SERVER_LIMIT * sizeof(short_score));
+ m = (caddr_t) create_shared_heap("\\SHAREMEM\\SCOREBOARD",
SCOREBOARD_SIZE);
if (m == 0) {
fprintf(stderr, "httpd: Could not create OS/2 Shared memory pool.\n");
exit(1);
@@ -2086,7 +2086,7 @@
void detach(void)
{
-#ifndef WIN32
+#if !defined(WIN32) && !defined(__EMX__)
int x;
chdir("/");
@@ -2145,7 +2145,7 @@
* but we haven't opened that yet. So leave it alone for now and it'll
* be reopened moments later.
*/
-#endif /* ndef WIN32 */
+#endif /* ndef WIN32 or __EMX__ */
}
/* Reset group privileges, after rereading the config files
1.30 +25 -0 apachen/src/modules/proxy/proxy_cache.c
Index: proxy_cache.c
===================================================================
RCS file: /export/home/cvs/apachen/src/modules/proxy/proxy_cache.c,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- proxy_cache.c 1997/10/22 20:30:06 1.29
+++ proxy_cache.c 1997/11/05 12:48:21 1.30
@@ -276,6 +276,27 @@
/* FIXME: Shouldn't any unexpected files be deleted? */
/* if (strlen(ent->d_name) != HASH_LEN) continue; */
+/* under OS/2 use dirent's d_attr to identify a diretory */
+#ifdef __EMX__
+/* is it a directory? */
+ if (ent->d_attr & A_DIR) {
+ char newcachedir[HUGE_STRING_LEN];
+ ap_snprintf(newcachedir, sizeof(newcachedir),
+ "%s%s/", cachesubdir, ent->d_name);
+ if (!sub_garbage_coll(r, files, cachebasedir, newcachedir)) {
+ ap_snprintf(newcachedir, sizeof(newcachedir),
+ "%s%s", cachedir, ent->d_name);
+#if TESTING
+ fprintf(stderr, "Would remove directory %s\n", newcachedir);
+#else
+ rmdir(newcachedir);
+#endif
+ --nfiles;
+ }
+ continue;
+ }
+#endif
+
/* read the file */
fd = open(filename, O_RDONLY | O_BINARY);
if (fd == -1) {
@@ -289,6 +310,9 @@
close(fd);
continue;
}
+
+/* In OS/2 this has already been done above */
+#ifndef __EMX__
if (S_ISDIR(buf.st_mode)) {
char newcachedir[HUGE_STRING_LEN];
close(fd);
@@ -306,6 +330,7 @@
}
continue;
}
+#endif
i = read(fd, line, 26);
if (i == -1) {
1.1 apachen/src/os/emx/.cvsignore
Index: .cvsignore
===================================================================
Makefile
1.1 apachen/src/os/emx/Makefile.tmpl
Index: Makefile.tmpl
===================================================================
CFLAGS=$(OPTIM) $(CFLAGS1) $(EXTRA_CFLAGS)
LIBS=$(EXTRA_LIBS) $(LIBS1)
INCLUDES=$(INCLUDES_DEPTH2) $(EXTRA_INCLUDES)
LFLAGS=$(LFLAGS1) $(EXTRA_LFLAGS)
INCDIR=../../main
OBJS= os.o os-inline.o
COPY= os.h os-inline.c
LIB= libos.a
all: $(LIB) copy
copy:
for i in $(COPY); do \
rm -f $(INCDIR)/$$i ;\
cp `pwd`/$$i $(INCDIR)/$$i ;\
done
$(LIB): $(OBJS)
rm -f $@
ar cr $@ $(OBJS)
$(RANLIB) $@
.c.o:
$(CC) -c $(INCLUDES) $(CFLAGS) $(SPACER) $<
clean:
for i in $(COPY); do rm -f $(INCDIR)/$$i ; done
rm -f $(OBJS) $(LIB)
$(OBJS): Makefile
# DO NOT REMOVE
os.o: os.c os-inline.c
1.1 apachen/src/os/emx/os-inline.c
Index: os-inline.c
===================================================================
/*
* This file contains functions which can be inlined if the compiler
* has an "inline" modifier. Because of this, this file is both a
* header file and a compilable module.
*
* Only inlineable functions should be defined in here. They must all
* include the INLINE modifier.
*
* If the compiler supports inline, this file will be #included as a
* header file from os.h to create all the inline function
* definitions. INLINE will be defined to whatever is required on
* function definitions to make them inline declarations.
*
* If the compiler does not support inline, this file will be compiled
* as a normal C file into libos.a (along with os.c). In this case
* INLINE will _not_ be set so we can use this to test if we are
* compiling this source file.
*/
#ifndef INLINE
#define INLINE
/* Anything required only when compiling */
#endif
INLINE int os_is_path_absolute(char *file)
{
/* For now, just do the same check that http_request.c and mod_alias.c
* do.
*/
return file && (file[0] == '/' || file[1] == ':');
}
1.1 apachen/src/os/emx/os.c
Index: os.c
===================================================================
/*
* This file will include OS specific functions which are not inlineable.
* Any inlineable functions should be defined in os-inline.c instead.
*/
#include "os.h"
1.1 apachen/src/os/emx/os.h
Index: os.h
===================================================================
/*
* This file in included in all Apache source code. It contains definitions
* of facilities available on _this_ operating system (HAVE_* macros),
* and prototypes of OS specific functions defined in os.c or os-inline.c
*/
#if defined(__GNUC__) && !defined(INLINE)
/* Compiler supports inline, so include the inlineable functions as
* part of the header
*/
#define INLINE extern __inline__
#include "os-inline.c"
#endif
#ifndef INLINE
/* Compiler does not support inline, so prototype the inlineable functions
* as normal
*/
extern int os_is_path_absolute(char *f);
#endif
/* OS/2 doesn't have symlinks so S_ISLNK is always false */
#define S_ISLNK(m) 0
1.5 +1 -0 apachen/src/regex/.cvsignore
Index: .cvsignore
===================================================================
RCS file: /export/home/cvs/apachen/src/regex/.cvsignore,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- .cvsignore 1997/07/08 18:05:38 1.4
+++ .cvsignore 1997/11/05 12:48:24 1.5
@@ -3,3 +3,4 @@
Release
regex.mdp
regex.ncb
+Makefile
1.2 +0 -1 apachen/src/regex/mkh
Index: mkh
===================================================================
RCS file: /export/home/cvs/apachen/src/regex/mkh,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- mkh 1996/07/23 22:06:44 1.1
+++ mkh 1997/11/05 12:48:25 1.2
@@ -1,6 +1,5 @@
#! /bin/sh
# mkh - pull headers out of C source
-PATH=/bin:/usr/bin ; export PATH
# egrep pattern to pick out marked lines
egrep='^ =([ ]|$)'
1.1 apachen/src/regex/Makefile.tmpl
Index: Makefile.tmpl
===================================================================
# You probably want to take -DREDEBUG out of CFLAGS, and put something like
# -O in, *after* testing (-DREDEBUG strengthens testing by enabling a lot of
# internal assertion checking and some debugging facilities).
# Put -Dconst= in for a pre-ANSI compiler.
# Do not take -DPOSIX_MISTAKE out.
# REGCFLAGS isn't important to you (it's for my use in some special contexts).
CFLAGS=-I. -DPOSIX_MISTAKE $(AUX_CFLAGS)
# If you have a pre-ANSI compiler, put -o into MKHFLAGS. If you want
# the Berkeley __P macro, put -b in.
MKHFLAGS=
# Flags for linking but not compiling, if any.
LDFLAGS=
# Extra libraries for linking, if any.
LIBS=
# Internal stuff, should not need changing.
OBJPRODN=regcomp.o regexec.o regerror.o regfree.o
OBJS=$(OBJPRODN) split.o debug.o main.o
H=cclass.h cname.h regex2.h utils.h
REGSRC=regcomp.c regerror.c regexec.c regfree.c
ALLSRC=$(REGSRC) engine.c debug.c main.c split.c
# Stuff that matters only if you're trying to lint the package.
LINTFLAGS=-I. -Dstatic= -Dconst= -DREDEBUG
LINTC=regcomp.c regexec.c regerror.c regfree.c debug.c main.c
JUNKLINT=possible pointer alignment|null effect
# arrangements to build forward-reference header files
.SUFFIXES: .ih .h
.c.ih:
sh ./mkh $(MKHFLAGS) -p $< >$@
all lib: libregex.a
libregex.a: $(OBJPRODN)
rm -f libregex.a
ar cr libregex.a $(OBJPRODN)
$(RANLIB) libregex.a
default: r
purge:
rm -f *.o
# stuff to build regex.h
REGEXH=regex.h
REGEXHSRC=regex2.h $(REGSRC)
$(REGEXH): $(REGEXHSRC) mkh
sh ./mkh $(MKHFLAGS) -i _REGEX_H_ $(REGEXHSRC) >regex.h
#cmp -s regex.tmp regex.h 2>/dev/null || cp regex.tmp regex.h
#rm -f regex.tmp
# dependencies
$(OBJPRODN) debug.o: utils.h regex.h regex2.h
regcomp.o: cclass.h cname.h regcomp.ih
regexec.o: engine.c engine.ih
regerror.o: regerror.ih
debug.o: debug.ih
main.o: main.ih
# tester
re: $(OBJS)
$(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) -o $@
# regression test
r: re tests
./re <tests
./re -el <tests
./re -er <tests
# 57 variants, and other stuff, for development use -- not useful to you
ra: ./re tests
-./re <tests
-./re -el <tests
-./re -er <tests
rx: ./re tests
./re -x <tests
./re -x -el <tests
./re -x -er <tests
t: ./re tests
-time ./re <tests
-time ./re -cs <tests
-time ./re -el <tests
-time ./re -cs -el <tests
l: $(LINTC)
lint $(LINTFLAGS) -h $(LINTC) 2>&1 | egrep -v '$(JUNKLINT)' | tee lint
fullprint:
ti README WHATSNEW notes todo | list
ti *.h | list
list *.c
list regex.3 regex.7
print:
ti README WHATSNEW notes todo | list
ti *.h | list
list reg*.c engine.c
mf.tmp: Makefile
sed '/^REGEXH=/s/=.*/=regex.h/' Makefile | sed '/#DEL$$/d' >$@
DTRH=cclass.h cname.h regex2.h utils.h
PRE=COPYRIGHT README WHATSNEW
POST=mkh regex.3 regex.7 tests $(DTRH) $(ALLSRC) fake/*.[ch]
FILES=$(PRE) Makefile $(POST)
DTR=$(PRE) Makefile=mf.tmp $(POST)
dtr: $(FILES) mf.tmp
makedtr $(DTR) >$@
rm mf.tmp
cio: $(FILES)
cio $(FILES)
rdf: $(FILES)
rcsdiff -c $(FILES) 2>&1 | p
# various forms of cleanup
tidy:
rm -f junk* core core.* *.core dtr *.tmp lint
clean: tidy
rm -f *.o *.s re libregex.a
# don't do this one unless you know what you're doing
spotless: clean
rm -f mkh regex.h