You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mod_dtcl-cvs@tcl.apache.org by da...@apache.org on 2001/03/01 19:32:18 UTC
cvs commit: mod_dtcl/win32 README.mingw32 makefile mod_dtcl.def os.h.diff
davidw 01/03/01 10:32:16
Modified: . Makefile README apache_multipart_buffer.c
mod_dtcl.c mod_dtcl.h
contrib clocks.ttml
debian changelog control
docs documentation.html examples.ttml
tests dtcl-test.ttml
Added: contrib newtags.sh
win32 README.mingw32 makefile mod_dtcl.def os.h.diff
Log:
Big changes: switched <+ +> tags to <? ?>. Script provided to change
.ttml files, as well as backwards compatibility code in mod_dtcl.c.
Added Craig's work on the win32/ build stuff.
Revision Changes Path
1.8 +2 -2 mod_dtcl/Makefile
Index: Makefile
===================================================================
RCS file: /home/cvs/mod_dtcl/Makefile,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Makefile 2001/02/20 12:40:39 1.7
+++ Makefile 2001/03/01 18:31:25 1.8
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.7 2001/02/20 12:40:39 davidw Exp $
+# $Id: Makefile,v 1.8 2001/03/01 18:31:25 davidw Exp $
# Changed to use the Tcl variables from tclConfig.sh
@@ -43,7 +43,7 @@
apache_request.o: apache_request.c apache_request.h
$(COMPILE)
mod_dtcl.o: mod_dtcl.c mod_dtcl.h tcl_commands.h apache_request.h
- $(COMPILE)
+ $(COMPILE) -DDTCL_VERSION=`cat VERSION`
tcl_commands.o: tcl_commands.c tcl_commands.h mod_dtcl.h
$(COMPILE)
1.2 +6 -1 mod_dtcl/README
Index: README
===================================================================
RCS file: /home/cvs/mod_dtcl/README,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- README 2001/02/12 21:21:35 1.1
+++ README 2001/03/01 18:31:28 1.2
@@ -1,3 +1,8 @@
Documentation for mod_dtcl, including use and installation, may be
found in the docs/ directory. See documentation.txt or
-documentation.html for instructions on installing mod_dtcl.
\ No newline at end of file
+documentation.html for instructions on installing mod_dtcl.
+
+As of version 0.9.4, dtcl now uses <? ?> tags instead of <+ +>. The
+newtags.sh shell script in the contrib/ directory will update your
+.ttml files for you. For now, mod_dtcl contains compatibility code so
+that your old scripts will still run.
1.3 +0 -1 mod_dtcl/apache_multipart_buffer.c
Index: apache_multipart_buffer.c
===================================================================
RCS file: /home/cvs/mod_dtcl/apache_multipart_buffer.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- apache_multipart_buffer.c 2001/02/25 19:51:59 1.2
+++ apache_multipart_buffer.c 2001/03/01 18:31:29 1.3
@@ -182,7 +182,6 @@
/* finds a boundary */
int find_boundary(multipart_buffer *self, char *boundary)
{
- int len, bound_len = strlen(boundary);
char *line;
/* loop thru lines */
1.20 +52 -26 mod_dtcl/mod_dtcl.c
Index: mod_dtcl.c
===================================================================
RCS file: /home/cvs/mod_dtcl/mod_dtcl.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- mod_dtcl.c 2000/12/29 13:14:05 1.19
+++ mod_dtcl.c 2001/03/01 18:31:30 1.20
@@ -58,7 +58,7 @@
* University of Illinois, Urbana-Champaign.
*/
-/* $Id: mod_dtcl.c,v 1.19 2000/12/29 13:14:05 davidw Exp $ */
+/* $Id: mod_dtcl.c,v 1.20 2001/03/01 18:31:30 davidw Exp $ */
/* mod_dtcl.c by David Welton <da...@apache.org> - originally mod_include. */
/* See http://tcl.apache.org/mod_dtcl/credits.ttml for additional credits. */
@@ -439,7 +439,7 @@
char c;
int ch;
- int l = strlen(ENDING_SEQUENCE), l2 = strlen(STARTING_SEQUENCE), p = 0;
+ int endseqlen = strlen(ENDING_SEQUENCE), startseqlen = strlen(STARTING_SEQUENCE), p = 0;
FILE *f = NULL;
@@ -464,23 +464,38 @@
while ((ch = getc(f)) != EOF)
{
- /* ok, if we find the string, then we start on another loop */
- /* if (!find_string(f, STARTING_SEQUENCE, r)) */
+ if (ch == -1)
+ if (ferror(f))
+ {
+ ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
+ "Encountered error in mod_dtcl getchar routine while reading %s",
+ r->uri);
+ ap_pfclose( r->pool, f);
+ }
+ c = ch;
if (!inside)
{
/* OUTSIDE */
- if (ch == -1)
- if (ferror(f))
+
+#if USE_OLD_TAGS == 1
+ if (c == '<')
+ {
+ int nextchar = getc(f);
+ if (nextchar == '+')
{
- ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
- "Encountered error in mod_dtcl getchar routine while reading %s",
- r->uri);
- ap_pfclose( r->pool, f);
+ Tcl_AppendToObj(outbuf, "\"\n", 2);
+ inside = 1;
+ p = 0;
+ continue;
+ } else {
+ ungetc(nextchar, f);
}
- c = ch;
+ }
+#endif
+
if (c == strstart[p])
{
- if (( ++p ) == l)
+ if ((++p) == endseqlen)
{
/* ok, we have matched the whole ending sequence - do something */
Tcl_AppendToObj(outbuf, "\"\n", 2);
@@ -489,7 +504,8 @@
continue;
}
} else {
- Tcl_AppendToObj(outbuf, (char *)strstart, p);
+ if (p > 0)
+ Tcl_AppendToObj(outbuf, (char *)strstart, p);
/* or else just put the char in outbuf */
if (c == '$')
Tcl_AppendToObj(outbuf, "\\$", -1);
@@ -509,24 +525,29 @@
}
} else {
/* INSIDE */
- if (ch == -1)
- if (ferror(f))
+
+#if USE_OLD_TAGS == 1
+ if (c == '+')
+ {
+ int nextchar = getc(f);
+ if (nextchar == '>')
{
- ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
- "Encountered error in mod_dtcl getchar routine while reading %s",
- r->uri);
- ap_pfclose( r->pool, f);
- return DONE;
+ Tcl_AppendToObj(outbuf, "\n hputs \"", -1);
+ inside = 0;
+ p = 0;
+ continue;
+ } else {
+ ungetc(nextchar, f);
}
-
- c = ch;
+ }
+#endif
if (c == strend[p])
{
- if ((++p) == l2)
+ if ((++p) == startseqlen)
{
- inside = 0;
Tcl_AppendToObj(outbuf, "\n hputs \"", -1);
+ inside = 0;
p = 0;
continue;
}
@@ -534,7 +555,8 @@
else
{
/* plop stuff into outbuf, which we will then eval */
- Tcl_AppendToObj(outbuf, (char *)strend, p);
+ if (p > 0)
+ Tcl_AppendToObj(outbuf, (char *)strend, p);
Tcl_AppendToObj(outbuf, &c, 1);
p = 0;
}
@@ -867,12 +889,16 @@
}
}
-void dtcl_init_handler(server_rec *s, pool *p)
+MODULE_VAR_EXPORT void dtcl_init_handler(server_rec *s, pool *p)
{
#if THREADED_TCL == 0
tcl_init_stuff(s, p);
#endif
+#ifndef HIDE_DTCL_VERSION
+ ap_add_version_component("mod_dtcl/"DTCL_VERSION);
+#else
ap_add_version_component("mod_dtcl");
+#endif /* !HIDE_DTCL_VERSION */
}
const char *set_script(cmd_parms *cmd, void *dummy, char *arg, char *arg2)
1.2 +13 -3 mod_dtcl/mod_dtcl.h
Index: mod_dtcl.h
===================================================================
RCS file: /home/cvs/mod_dtcl/mod_dtcl.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- mod_dtcl.h 2000/12/19 11:59:10 1.1
+++ mod_dtcl.h 2001/03/01 18:31:32 1.2
@@ -19,16 +19,26 @@
#define THREADED_TCL 0 /* Unless you have MINGW32, modify this one! */
#endif
+/* If you want to show the mod_dtcl version, you can define this to 0.
+ Otherwise, set this to 1 to hide the version from potential
+ troublemakers. */
+#define HIDE_DTCL_VERSION 1
+
/* Turn on the translation stuff. This will translate things to UTF
correctly. Turn off *only* if you will *not* use anything but
plain ascii */
-
#define DTCL_I18N 1
+/* Allow <+ +> tags for backwards compatibility. Use the
+ mod_dtcl/contrib/newtags.sh script to update your .ttml files to
+ use <? ?> tags. */
+#define USE_OLD_TAGS 1
+
/* End Configuration options */
+
+#define STARTING_SEQUENCE "<?"
+#define ENDING_SEQUENCE "?>"
-#define STARTING_SEQUENCE "<+"
-#define ENDING_SEQUENCE "+>"
#define DEFAULT_ERROR_MSG "[an error occurred while processing this directive]"
#define DEFAULT_TIME_FORMAT "%A, %d-%b-%Y %H:%M:%S %Z"
#define DEFAULT_HEADER_TYPE "text/html"
1.3 +2 -2 mod_dtcl/contrib/clocks.ttml
Index: clocks.ttml
===================================================================
RCS file: /home/cvs/mod_dtcl/contrib/clocks.ttml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- clocks.ttml 2000/10/04 22:37:05 1.2
+++ clocks.ttml 2001/03/01 18:31:41 1.3
@@ -1,5 +1,5 @@
<table>
-<+
+<?
# Creates a table that displays the times in various locations in the
# world - davidw
@@ -18,5 +18,5 @@
hputs "</tt></td></tr>"
}
unset env(TZ)
-+>
+?>
</table>
1.1 mod_dtcl/contrib/newtags.sh
Index: newtags.sh
===================================================================
#!/bin/sh
# $Id: newtags.sh,v 1.1 2001/03/01 18:31:43 davidw Exp $
#This script transforms the old <+ +> mod_dtcl tags into the new <? ?>
#tags.
#Run it in your server root directory.
for fn in `find . -name "*.ttml"` ;
do
echo -n "Editing $fn "
sed -e 's/<+/<?/g' -e 's/+>/?>/g' $fn > $fn.new;
echo "... done"
mv $fn.new $fn ;
done
1.6 +10 -0 mod_dtcl/debian/changelog
Index: changelog
===================================================================
RCS file: /home/cvs/mod_dtcl/debian/changelog,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- changelog 2001/02/16 13:18:22 1.5
+++ changelog 2001/03/01 18:31:48 1.6
@@ -1,3 +1,13 @@
+libapache-mod-dtcl (0.9.3-2) unstable; urgency=low
+
+ * Added build depends.
+
+ * Closes #85787.
+
+ * Closes #87251.
+
+ -- David N. Welton <da...@debian.org> Mon, 26 Feb 2001 14:01:34 +0100
+
libapache-mod-dtcl (0.9.3-1) unstable; urgency=low
* New version.
1.4 +1 -0 mod_dtcl/debian/control
Index: control
===================================================================
RCS file: /home/cvs/mod_dtcl/debian/control,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- control 2001/02/12 19:27:12 1.3
+++ control 2001/03/01 18:31:49 1.4
@@ -6,6 +6,7 @@
Package: libapache-mod-dtcl
Architecture: any
+Build-Depends: tcl8.3-dev, apache-dev
Depends: ${shlibs:Depends}, apache-common (>= 1.3.6)
Description: Server side Tcl scripting for Apache
The mod_dtcl Apache module enables the use of Tcl as an HTML-embedded
1.5 +20 -5 mod_dtcl/docs/documentation.html
Index: documentation.html
===================================================================
RCS file: /home/cvs/mod_dtcl/docs/documentation.html,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- documentation.html 2001/02/12 19:27:16 1.4
+++ documentation.html 2001/03/01 18:31:57 1.5
@@ -1,4 +1,4 @@
-<!-- $Id: documentation.html,v 1.4 2001/02/12 19:27:16 davidw Exp $ -->
+<!-- $Id: documentation.html,v 1.5 2001/03/01 18:31:57 davidw Exp $ -->
<h2>mod_dtcl Documentation</h2>
<h3>1) Installation</h3>
@@ -320,8 +320,8 @@
share variables, and most importantly, loaded modules,
from a common parent (such as one of the InitScripts).
When a file is loaded, it is transformed into a Tcl
- script by putting everything outside of <+ and
- +> into large hputs statements. When the script is
+ script by putting everything outside of <? and
+ ?> into large hputs statements. When the script is
complete, it is then inserted into the cache, for
future use. In fact, if the file modification
information doesn't change, mod_dtcl will execute the
@@ -333,8 +333,23 @@
images, or loading binary data with 'include'.
</li>
</ul>
-
- <h3>5) Getting Help</h3>
+
+ <h3>5) Upgrading From Older (< 0.9.3) Versions</h3>
+ <ul>
+ <li><b>New tags</b><br> As of version 0.9.4, mod_dtcl uses
+ <? and ?> instead of <+ and +> to delimit
+ sections of Tcl code. By default, dtcl is still compiled
+ with code to parse the <? ?> tags, but it will run
+ faster if <code>USE_OLD_TAGS</code> is set to 0 in
+ <code>mod_dtcl.h</code>. You can automatically change your
+ .ttml files to the new format by using the
+ <code>newtags.sh</code> script in the contrib/ directory.
+ Run it at the top level of your DocumentRoot.
+
+ </li>
+ </ul>
+
+ <h3>6) Getting Help</h3>
<ul>
<li><b>Mailing list</b><br>
<p>
1.4 +24 -24 mod_dtcl/docs/examples.ttml
Index: examples.ttml
===================================================================
RCS file: /home/cvs/mod_dtcl/docs/examples.ttml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- examples.ttml 2000/11/15 18:30:27 1.3
+++ examples.ttml 2001/03/01 18:31:59 1.4
@@ -1,6 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
<html>
-<!-- $Id: examples.ttml,v 1.3 2000/11/15 18:30:27 davidw Exp $ -->
+<!-- $Id: examples.ttml,v 1.4 2001/03/01 18:31:59 davidw Exp $ -->
<title>mod_dtcl examples</title>
<body bgcolor=white>
@@ -22,7 +22,7 @@
<tr><td><hr><b>Hello world</b></td></tr>
<tr><td bgcolor=gray><pre>
-<+
+<?
headers setcookie "foo" "bar" # we have to put this before any 'hputs' statements
# once buffering is switched off, it is no longer possible to
@@ -30,7 +30,7 @@
buffered off
hputs "Hello world"
-+>
+?>
</pre>
</td></tr>
@@ -39,7 +39,7 @@
Produces:
<p>
-<+
+<?
headers setcookie "foo" "bar"
# once buffering is switched off, it is no longer possible to
@@ -47,7 +47,7 @@
buffered off
hputs "hello world"
-+>
+?>
<p>
@@ -60,11 +60,11 @@
<tr><td bgcolor=gray><pre>
-<+ if { 1 } { +>
+<? if { 1 } { ?>
<h2> True </h2>
-<+ } +>
+<? } ?>
</td></tr></pre>
@@ -72,11 +72,11 @@
Produces:
<p>
-<+ if { 1 } { +>
+<? if { 1 } { ?>
<h2> True </h2>
-<+ } +>
+<? } ?>
</td></tr>
<tr><td><hr><b>Loops:</b>
@@ -84,36 +84,36 @@
<tr><td bgcolor=gray><pre>
-<+
+<?
set x 0
while { $x < 5 } {
hputs "\$x = $x<br>"
incr x
-+>
+?>
LOOP<br>
-<+ } +>
+<? } ?>
</pre>
</td></tr>
<tr><td>Produces:<p>
-<+
+<?
set x 0
while { $x < 5 } {
hputs "\$x = $x<br>"
incr x
-+>
+?>
LOOP<BR>
-<+ } +>
+<? } ?>
</td></tr>
<tr><td><hr><b>Variables (environmental as well as those passed to the script)</b><p>
</td></tr>
<tr><td bgcolor=gray><pre>
-<+
+<?
hgetvars
if { [ array exists VARS ] } {
hputs "< ul>"
@@ -141,13 +141,13 @@
hputs "</ul>"
}
-+>
+?>
</pre>
</td></tr>
<tr><td>Produces:<p>
-<+
+<?
hgetvars
if { [ array exists VARS ] } {
hputs "<ul>"
@@ -174,14 +174,14 @@
hputs "</ul>"
}
-+>
+?>
</td></tr>
<tr><td><hr><b>Create a table on the fly</b><p>
</td></tr>
<tr><td bgcolor=gray><pre>
-<+
+<?
set i 1
hputs "<table>\n"
@@ -196,12 +196,12 @@
}
hputs "</table>\n"
-+>
+?>
</pre>
</td></tr>
<tr><td>Produces:<p>
-<+
+<?
set i 1
hputs "<table>\n"
@@ -216,7 +216,7 @@
}
hputs "</table>\n"
-+>
+?>
</td></tr>
<tr><td><hr> <b>In addition</b><br>
@@ -231,7 +231,7 @@
</table>
-<+ dtcl_info +>
+<? dtcl_info ?>
<p>
1.3 +2 -2 mod_dtcl/tests/dtcl-test.ttml
Index: dtcl-test.ttml
===================================================================
RCS file: /home/cvs/mod_dtcl/tests/dtcl-test.ttml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- dtcl-test.ttml 2000/10/18 17:41:48 1.2
+++ dtcl-test.ttml 2001/03/01 18:32:06 1.3
@@ -1,4 +1,4 @@
-<+
+<?
hgetvars
@@ -31,4 +31,4 @@
}
}
-+>
\ No newline at end of file
+?>
\ No newline at end of file
1.1 mod_dtcl/win32/README.mingw32
Index: README.mingw32
===================================================================
Steps for building mod_dtcl under NT for Apache with MingW32
(http://www.mingw.org/).
1) Get Apache for NT, I used version 1.3.X. You can use the binary release
or build it from source. I built from source because I needed to also include
mod_ssl. Note that I used VC++ to build Apache - they don't support MingW32
yet AFAIK.
2) Edit the win32\makefile in the mod_dtcl source tree to reflect
your environment, i.e. where is Tcl installed, where is Apache installed, where
are your Apache sources and object files, etc.
3) Apply the diffs for Apache. The diff for Apache wraps a few
declarations and one #include directive in the os.h file that aren't needed or
used with the MingW32 compiler. I used GNU patch to do this with :
patch -c -b < os.h.diff
4) Run make. There will be some warnings about a redefinition -
you can ignore it. You should be left with a file called ApacheModuleDtcl.dll.
If you are using Apache 1.3.17 or newer that uses .so files for modules, you can
run 'make so_style' to get a mod_dtcl.so. Or you can simply rename the dll :)
5) Run make install. Make the changes to your Apache configuration as
described on the mod_dtcl documentation, and you are off.
Notes :
-- Tcl needs to be in the path of the web server
-- These instructions assume you have the MingW32 gcc setup as well
as a good collection of GNU tools on your NT machine (sed, grep, etc).
They also assume you have Tcl setup.
-- You will need a fairly recent version of the MingW32 toolset and the
associated win32api fileset - see http://www.mingw.org for details on
obtaining new releases.
-- I've tried my best to make these instructions error free but
mistakes are possible.
Good Luck,
Craig
1.1 mod_dtcl/win32/makefile
Index: makefile
===================================================================
#
# makefile for mod_dtcl and MingW32
#
#
#
# I use this as a pointer to a good temporary location.
# The default works for most people
#
TEMP_LIBS = C:\\TEMP
#
# Set this to your TCL version
#
TCL_VERSION = 83
#
# Set TCL_HOME to where you have installed Tcl
#
TCL_HOME = C:\\Progra~1\\Tcl
TCL_INC = $(TCL_HOME)\\include
TCL_LIB = $(TCL_HOME)\\lib
#
# Set this to where you have installed Apache - used for the install step.
#
APACHE_HOME = C:\\"Program Files\\Apache Group\\Apache"
#
# Set APACHE_SRC to where your APACHE sources live.
# NOTE: You must apply the diff to the os.h file as described in the
# readme, and this directory must contain built sources, e.g. object files
#
APACHE_SRC = ..\\apache
#
# Set APACHE_INC to where the APACHE source include files live. This default
# should be OK.
#
APACHE_INC = $(APACHE_SRC)\\src\\include
#
# Set APACHE_LIB and APACHE_DEF to where you'd like a MingW32 compatible
# APACHE library file and DLL DEF file put. You normally only need these
# during a build, so a temporary location is OK
#
APACHE_LIB = $(TEMP_LIBS)
APACHE_DEF = $(TEMP_LIBS)\\ApacheCore.def
#
# You shouldn't have to change anything below this
#
ROOT_DIR = ..\\
CC = gcc -O3 -fnative-struct -shared -mwindows -DSHARED_MODULE -DDTCL_VERSION="\"`cat $(ROOT_DIR)\\VERSION`\""
INCLUDES = -I$(TCL_INC) -I$(APACHE_INC)
LIBS = $(TCL_LIB)\\tcl$(TCL_VERSION).lib -L$(APACHE_LIB) -lapachecore
APREQ_OBJECTS = apache_cookie.o apache_multipart_buffer.o apache_request.o
OBJECTS = tcl_commands.o $(APREQ_OBJECTS)
DLL_CFLAGS = -DEAPI=1
DLL_EXP_LIB = libmod_dtcl.a
DLL_EXP_DEF = mod_dtcl.def
DLL_DYNAMIC = ApacheModuleDtcl.dll
DLL_SO = mod_dtcl.so
DLL_OBJS = mod_dtcl.o $(OBJECTS)
DLLWRAP_FLAGS = --def $(DLL_EXP_DEF) \
--implib $(DLL_EXP_LIB) \
--driver-name $(CC)
#
# By default we build a .dll file (Apache < 1.3.14)
#
all : apache_libs $(DLL_DYNAMIC)
dll_style: apache_libs $(DLL_DYNAMIC)
so_style: apache_libs $(DLL_SO)
$(DLL_DYNAMIC): $(DLL_OBJS) makefile
$(CC) --dll --kill-at --disable-stdcall-fixup \
-o $(DLL_DYNAMIC) $(DLL_OBJS) $(LIBS)
#
# This does the same thing as the above, yet names the output file
# with a .so extension to match the "new" Apache style.
#
$(DLL_SO): $(DLL_OBJS) makefile
$(CC) --dll --kill-at --disable-stdcall-fixup \
-o $(DLL_SO) $(DLL_OBJS) $(LIBS)
apache_cookie.o: $(ROOT_DIR)apache_cookie.c $(ROOT_DIR)apache_cookie.h
$(CC) -c $(DLL_CFLAGS) $(INCLUDES) -D_AP_OS_IS_PATH_ABS_ -o $@ $<
apache_multipart_buffer.o: $(ROOT_DIR)apache_multipart_buffer.c $(ROOT_DIR)apache_multipart_buffer.h
$(CC) -c $(DLL_CFLAGS) $(INCLUDES) -D_AP_OS_IS_PATH_ABS_ -o $@ $<
apache_request.o: $(ROOT_DIR)apache_request.c $(ROOT_DIR)apache_request.h
$(CC) -c $(DLL_CFLAGS) $(INCLUDES) -D_AP_OS_IS_PATH_ABS_ -o $@ $<
mod_dtcl.o: $(ROOT_DIR)mod_dtcl.c $(ROOT_DIR)mod_dtcl.h $(ROOT_DIR)tcl_commands.h $(ROOT_DIR)apache_request.h
$(CC) -c $(DLL_CFLAGS) $(INCLUDES) -o $@ $<
tcl_commands.o: $(ROOT_DIR)tcl_commands.c $(ROOT_DIR)tcl_commands.h $(ROOT_DIR)mod_dtcl.h
$(CC) -c $(DLL_CFLAGS) $(INCLUDES) -D_AP_OS_IS_PATH_ABS_ -o $@ $<
clean:
-@rm -f $(DLL_OBJS) $(DLL_DYNAMIC) $(DLL_SO) $(DLL_EXP_LIB)
install: $(DLL_DYNAMIC) $(DLL_EXP_LIB)
echo Installing mod_dtcl...
-cp $(DLL_DYNAMIC) $(APACHE_HOME)\\modules
apache_libs:
-@mkdir $(TEMP_LIBS)
-@rm $(APACHE_DEF)
echo EXPORTS > $(APACHE_DEF)
nm $(APACHE_SRC)\\src\\CoreR\\ApacheCore.exp |grep " U _" | sed "s/.* U _//" >> $(APACHE_DEF)
sed -e "s/ap_log_error$$/ap_log_error@0/g" \
-e "s/ap_log_rerror$$/ap_log_rerror@0/g" \
-e "s/ap_table_do$$/ap_table_do@0/g" \
$(APACHE_DEF) > $(APACHE_DEF).new
mv $(APACHE_DEF).new $(APACHE_DEF)
dlltool --def $(APACHE_DEF) --dllname ApacheCore.dll \
--output-lib $(TEMP_LIBS)\libapachecore.a -k
1.1 mod_dtcl/win32/mod_dtcl.def
Index: mod_dtcl.def
===================================================================
EXPORTS
dtcl_init_handler
dtcl_module
1.1 mod_dtcl/win32/os.h.diff
Index: os.h.diff
===================================================================
*** Vendors/Apache/Apache/src/os/win32/os.h 2001/02/02 08:36:15 1.1
--- Vendors/Apache/Apache/src/os/win32/os.h 2001/02/28 10:08:50 1.4
***************
*** 109,119 ****
--- 109,121 ----
#define HAVE_UNC_PATHS
typedef int uid_t;
typedef int gid_t;
+ #ifndef __MINGW32__
typedef int pid_t;
#ifdef _MSC_VER
/* modified to match declaration in sys/stat.h */
typedef unsigned short mode_t;
#endif
+ #endif /* !__MINGW32__ */
typedef char * caddr_t;
/*
***************
*** 163,168 ****
--- 165,171 ----
#define NO_OTHER_CHILD
#define NO_RELIABLE_PIPED_LOGS
+ #ifndef _AP_OS_IS_PATH_ABS_
__inline int ap_os_is_path_absolute(const char *file)
{
/* For now, just do the same check that http_request.c and mod_alias.c
***************
*** 170,175 ****
--- 173,179 ----
*/
return file && (file[0] == '/' || (file[1] == ':' && file[2] == '/'));
}
+ #endif
#define stat(f,ps) os_stat(f,ps)
API_EXPORT(int) os_stat(const char *szPath,struct stat *pStat);