rbb         99/11/11 07:10:06

  Modified:    src/lib/apr APRDesign
               src/lib/apr/include apr_win.h
  Log:
  Fix the APR build process on Windows.  I am also updating the APRDesign
  document to specifically discuss coding for Windows, and what must be
  done to keep APR on Windows working.
  
  Revision  Changes    Path
  1.4       +21 -0     apache-2.0/src/lib/apr/APRDesign
  
  Index: APRDesign
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/APRDesign,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- APRDesign 1999/10/21 11:14:49     1.3
  +++ APRDesign 1999/11/11 15:10:05     1.4
  @@ -19,6 +19,27 @@
   This document will discuss the structure of APR, and how best to contribute
   code to the effort.
   
  +APR On Windows
  +
  +I am putting this at the top because it is an important topic.  APR on 
Windows
  +is different from APR on all other systems, because it doesn't use autoconf.
  +As far as I know there is no autoconf for Windows, so we don't have much of a
  +choice in this.  Because autoconf is generating our apr_config.h file we need
  +to take care when adding macros to it.  There is an apr_win.h file which 
replaces
  +apr_config.h on Windows, and it needs to be kept up to date.
  +
  +!!!***  If you add code to acconfig.h or tests to configure.in or aclocal.m4,
  +        please give some thought to whether or not Windows needs this 
addition
  +        as well.  A general rule of thumb, is that if it is a feature macro,
  +        such as APR_HAS_THREADS, Windows needs it.  If the definition is 
going
  +        to be used in a public APR header file, such as apr_general.h, 
Windows
  +        needs it.
  +        
  +        The only time it is safe to add a macro or test without also adding 
  +        the macro to apr_win.h, is if the macro tells APR how to build.  For
  +        example, a test for a header file does not need to be added to 
Windows.
  +***!!!
  +
   APR Features
   
   One of the goals of APR is to provide a common set of features across all 
  
  
  
  1.6       +34 -15    apache-2.0/src/lib/apr/include/apr_win.h
  
  Index: apr_win.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/include/apr_win.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- apr_win.h 1999/11/08 18:54:00     1.5
  +++ apr_win.h 1999/11/11 15:10:06     1.6
  @@ -80,12 +80,6 @@
    */
   #define HAVE_CONIO_H 1
   
  -/* struct iovec is needed to emulate Unix writev */
  -struct iovec {
  -    char* iov_base;
  -    int   iov_len;
  -};
  -
   typedef enum {APR_WIN_NT, APR_WIN_95, APR_WIN_98} ap_oslevel_e;
   
   #define SIGHUP     1
  @@ -120,27 +114,52 @@
   #define SIGWINCH   30
   #define SIGIO      31
   
  -typedef _off_t      off_t;
  -typedef int         pid_t;
  -typedef void (Sigfunc)(int);
  -
   #define __attribute__(__x) 
   
  -#define SIZEOF_SHORT 2
  -#define SIZEOF_INT 4
  -#define SIZEOF_LONGLONG 8
  -
   #define API_EXPORT(x)            x
   #define API_EXPORT_NONSTD(x)     x
   #define API_THREAD_FUNC __stdcall
   #define API_VAR_IMPORT extern _declspec(dllimport)
   
  +/* APR COMPATABILITY FUNCTIONS
  + * This section should be used to define functions and
  + * macros which are need to make Windows features look
  + * like POSIX features.
  + */
  +/* struct iovec is needed to emulate Unix writev */
  +struct iovec {
  +    char* iov_base;
  +    int   iov_len;
  +};
  +
  +typedef _off_t      off_t;
  +typedef int         ssize_t;
  +typedef int         pid_t;
  +typedef void (Sigfunc)(int);
  +
   #define strcasecmp(s1, s2)       stricmp(s1, s2)
   #define sleep(t)                 Sleep(t * 1000)
   
  +
  +/* APR FEATURE MACROS.
  + * This section should be used to define feature macros
  + * that the windows port needs.
  + */
  +#define APR_HAS_THREADS        1
  +
  +#define SIZEOF_SHORT           2
  +#define SIZEOF_INT             4
  +#define SIZEOF_LONGLONG        8
  +#define SIZEOF_CHAR            1
  +#define SIZEOF_SSIZE_T         SIZEOF_INT
  +
  +/* APR WINDOWS-ONLY FUNCTIONS
  + * This section should define those functions which are
  + * only found in the windows version of APR.
  + */
  +
   time_t WinTimeToUnixTime(FILETIME *);
   unsigned __stdcall SignalHandling(void *);
  -
   int thread_ready(void);
   
   #endif  /*APR_WIN_H*/
  
  
  

Reply via email to