You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rb...@apache.org on 2001/07/21 08:34:55 UTC

cvs commit: httpd-2.0/server Makefile.in

rbb         01/07/20 23:34:55

  Modified:    .        CHANGES
               server   Makefile.in
  Added:       build    make_exports.awk
  Log:
  Improve the exports generating awk script.  In the past, we had
  work around problems in the awk script by avoiding some #if and
  #ifdefs.  This has bitten us many times in generating the exports.c
  file.  This improvement allows corrects the header file parsing.
  
  Submitted by:	Sander Striker <st...@apache.org>
  
  Revision  Changes    Path
  1.253     +6 -0      httpd-2.0/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/CHANGES,v
  retrieving revision 1.252
  retrieving revision 1.253
  diff -u -r1.252 -r1.253
  --- CHANGES	2001/07/19 21:49:35	1.252
  +++ CHANGES	2001/07/21 06:34:54	1.253
  @@ -1,5 +1,11 @@
   Changes with Apache 2.0.22-dev
   
  +  *) Improve the exports generating awk script.  In the past, we had
  +     work around problems in the awk script by avoiding some #if and
  +     #ifdefs.  This has bitten us many times in generating the exports.c
  +     file.  This improvement allows corrects the header file parsing.
  +     [Sander Striker <st...@apache.org>]
  +
   Changes with Apache 2.0.21
   
     *) Introduce connection sub-pools into ab.  Truncating the lifetime
  
  
  
  1.1                  httpd-2.0/build/make_exports.awk
  
  Index: make_exports.awk
  ===================================================================
  
  BEGIN {
      printf("/*\n")
      printf(" * THIS FILE WAS AUTOGENERATED BY make_exports.awk\n")
      printf(" *\n")
      printf(" * This is an ugly hack that needs to be here, so\n")
      printf(" * that libtool will link all of the APR functions\n")
      printf(" * into server regardless of whether the base server\n")
      printf(" * uses them.\n")
      printf(" */\n")
      printf("\n")
      printf("#define CORE_PRIVATE\n")
      printf("\n")
      
      for (i = 1; i < ARGC; i++) {
          file = ARGV[i]
          sub("([^/]*[/])*", "", file)
          printf("#include \"%s\"\n", file)
      }
  
      printf("\n")
      printf("const void *ap_ugly_hack = NULL;\n")
      printf("\n")
      
      TYPE_NORMAL = 0
      TYPE_HEADER = 1
  
      stackptr = 0
  }
  
  function push(line) {
      stack[stackptr] = line
      stackptr++
  }
  
  function do_output() {
      printf("/*\n")
      printf(" * %s\n", FILENAME)
      printf(" */\n")
      
      for (i = 0; i < stackptr; i++) {
          printf("%s\n", stack[i])
      }
      
      stackptr = 0
  
      printf("\n");
  }
  
  function enter_scope(type) {
      scope++
      scope_type[scope] = type
      scope_stack[scope] = stackptr
      delete scope_used[scope]
  }
  
  function leave_scope() {
      used = scope_used[scope]
     
      if (!used)
          stackptr = scope_stack[scope]
  
      scope--
      if (used) {
          scope_used[scope] = 1
          
          if (!scope)
              do_output()
      }
  }
  
  function add_symbol(symbol) {
      idx = index(symbol, "#")
  
      if (!idx) {
          push("const void *ap_hack_" symbol " = (const void *)" symbol ";")
          scope_used[scope] = 1
      }
  }
  
  /^[ \t]*AP[RU]?_DECLARE[^(]*[(][^)]*[)]([^ ]* )*[^(]+[(]/  { 
      sub("[ \t]*AP[RU]?_DECLARE[^(]*[(][^)]*[)]", "");
      sub("[(].*", "");
      sub("^[ \t]+", "");
      sub("([^ ]* ^([ \t]*[(]))*", "");
  
      add_symbol($0)
      next
  }
  
  /^#[ \t]*if(ndef| !defined[(])([^_]*_)*H/ {
      enter_scope(TYPE_HEADER)
      next
  }
  
  /^#[ \t]*if([n]?def)? / {
      enter_scope(TYPE_NORMAL)
      push($0)
      next
  }
  
  /^#[ \t]*endif/ {
      if (scope_type[scope] == TYPE_NORMAL)
          push($0)
          
      leave_scope()
      next
  }
  
  /^#[ \t]*else/ {
      push($0)
      next
  }
  
  /^#[ \t]*elif/ {
      push($0)
      next
  }
  
  
  
  
  
  1.62      +6 -23     httpd-2.0/server/Makefile.in
  
  Index: Makefile.in
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/Makefile.in,v
  retrieving revision 1.61
  retrieving revision 1.62
  diff -u -r1.61 -r1.62
  --- Makefile.in	2001/07/09 02:30:41	1.61
  +++ Makefile.in	2001/07/21 06:34:54	1.62
  @@ -14,11 +14,10 @@
   	util_script.c util_md5.c util_cfgtree.c util_ebcdic.c \
   	rfc1413.c connection.c listen.c \
           mpm_common.c util_charset.c util_debug.c util_xml.c \
  -	util_filter.c exports.c buildmark.c scoreboard.c \
  +        util_filter.c exports.c buildmark.c scoreboard.c \
   	error_bucket.c protocol.c core.c request.c
   
  -TARGETS = delete-exports $(LTLIBRARY_NAME) $(CORE_IMPLIB_FILE) export_vars.h \
  -	httpd.exp
  +TARGETS = $(LTLIBRARY_NAME) $(CORE_IMPLIB_FILE) export_vars.h httpd.exp
   
   include $(top_srcdir)/build/rules.mk
   include $(top_srcdir)/build/library.mk
  @@ -32,28 +31,12 @@
   
   util.lo: test_char.h
   
  -EXPORT_FILES = $(top_builddir)/srclib/apr/apr.exports \
  -	$(top_builddir)/srclib/apr-util/aprutil.exports \
  -	$(TARGET_EXPORTS)
  -
  -delete-exports:
  -	@if test -f $(TARGET_EXPORTS); then \
  -		    headers="`find $(top_srcdir)/include/*.h -newer $(TARGET_EXPORTS)`" ; \
  -		    if test -n "$$headers"; then \
  -		        echo Found newer headers. Will rebuild $(TARGET_EXPORTS). ; \
  -		        echo rm -f $(TARGET_EXPORTS) ; \
  -		        rm -f $(TARGET_EXPORTS) ; \
  -		    fi \
  -	fi
  -
  -
  -$(TARGET_EXPORTS):
  -	$(AWK) -f $(top_srcdir)/srclib/apr/build/make_export.awk \
  -		$(top_srcdir)/include/*.h \
  -		$(top_srcdir)/os/$(OS_DIR)/*.h > $@
  +EXPORT_FILES = $(top_srcdir)/include/*.h \
  +       $(top_srcdir)/srclib/apr/include/*.h \
  +       $(top_srcdir)/srclib/apr-util/include/*.h
   
   exports.c: $(EXPORT_FILES)
  -	(cat $(EXPORT_FILES) | $(top_srcdir)/build/buildexports.sh $(top_srcdir)) > $@
  +	$(AWK) -f $(top_srcdir)/build/make_exports.awk $(EXPORT_FILES) > $@
   
   export_vars.h:
   	$(AWK) -f $(top_srcdir)/build/make_var_export.awk \
  
  
  

RE: cvs commit: httpd-2.0/server Makefile.in

Posted by Sander Striker <st...@apache.org>.
> On Sat, 21 Jul 2001 11:52:59 +0200, Sander Striker wrote:
> 
> >Brain Harvard wrote: 
> 
> Err, could you have misspelt my name any worse? (no, that's not an
> invitation to try :)

Sorry Brain. The human mind has a strange way of seeing things
that are not there.

Sander


RE: cvs commit: httpd-2.0/server Makefile.in

Posted by Brian Havard <br...@kheldar.apana.org.au>.
On Sat, 21 Jul 2001 11:52:59 +0200, Sander Striker wrote:

>Brain Harvard wrote: 

Err, could you have misspelt my name any worse? (no, that's not an
invitation to try :)


>> This now misses a few things, especially most of the macro 
>> generated hooks:
>> 
>> F:\Apache\httpd-2.0\server>grep ap_hook_ exports.c.old | wc -l
>>      44
>> 
>> F:\Apache\httpd-2.0\server>grep ap_run_ exports.c.old | wc -l
>>      24
>> 
>> F:\Apache\httpd-2.0\server>grep ap_hook_ exports.c | wc -l
>>       0
>> 
>> F:\Apache\httpd-2.0\server>grep ap_run_ exports.c | wc -l
>>       2
>
>Whoops. Sorry about that. I missed the AP_HOOK_ stuff...
>I'll submit a patch shortly.

Tried it, looks good. I'll commit it in a moment.

-- 
 ______________________________________________________________________________
 |  Brian Havard                 |  "He is not the messiah!                   |
 |  brianh@kheldar.apana.org.au  |  He's a very naughty boy!" - Life of Brian |
 ------------------------------------------------------------------------------


RE: cvs commit: httpd-2.0/server Makefile.in

Posted by Sander Striker <st...@apache.org>.
[...]
>>  Log:
>>  Improve the exports generating awk script.  In the past, we had
>>  work around problems in the awk script by avoiding some #if and
>>  #ifdefs.  This has bitten us many times in generating the exports.c
>>  file.  This improvement allows corrects the header file parsing.

Brain Harvard wrote: 
> This now misses a few things, especially most of the macro 
> generated hooks:
> 
> F:\Apache\httpd-2.0\server>grep ap_hook_ exports.c.old | wc -l
>      44
> 
> F:\Apache\httpd-2.0\server>grep ap_run_ exports.c.old | wc -l
>      24
> 
> F:\Apache\httpd-2.0\server>grep ap_hook_ exports.c | wc -l
>       0
> 
> F:\Apache\httpd-2.0\server>grep ap_run_ exports.c | wc -l
>       2

Whoops. Sorry about that. I missed the AP_HOOK_ stuff...
I'll submit a patch shortly.

Sander


Re: cvs commit: httpd-2.0/server Makefile.in

Posted by Brian Havard <br...@kheldar.apana.org.au>.
On 21 Jul 2001 06:34:55 -0000, rbb@apache.org wrote:

>rbb         01/07/20 23:34:55
>
>  Modified:    .        CHANGES
>               server   Makefile.in
>  Added:       build    make_exports.awk
>  Log:
>  Improve the exports generating awk script.  In the past, we had
>  work around problems in the awk script by avoiding some #if and
>  #ifdefs.  This has bitten us many times in generating the exports.c
>  file.  This improvement allows corrects the header file parsing.

This now misses a few things, especially most of the macro generated hooks:

F:\Apache\httpd-2.0\server>grep ap_hook_ exports.c.old | wc -l
     44

F:\Apache\httpd-2.0\server>grep ap_run_ exports.c.old | wc -l
     24

F:\Apache\httpd-2.0\server>grep ap_hook_ exports.c | wc -l
      0

F:\Apache\httpd-2.0\server>grep ap_run_ exports.c | wc -l
      2

-- 
 ______________________________________________________________________________
 |  Brian Havard                 |  "He is not the messiah!                   |
 |  brianh@kheldar.apana.org.au  |  He's a very naughty boy!" - Life of Brian |
 ------------------------------------------------------------------------------