Merge pull request #1446 from odinserj/master
[mono.git] / support / Makefile.am
index 9e62bdf37178c4faf0e045fe375692da4ffd0b43..c339ebced737526b4eed078345d66c4f46d9ae61 100644 (file)
-lib_LTLIBRARIES= libMonoPosixHelper.la
+if HOST_WIN32
+SUPPORT=
+else
+SUPPORT=libMonoSupportW.la
+endif
+lib_LTLIBRARIES =                              \
+       libMonoPosixHelper.la                   \
+       $(SUPPORT)
 
-INCLUDES = \
-       $(GLIB_CFLAGS) \
+AM_CPPFLAGS =                                  \
+       $(GLIB_CFLAGS)                          \
        -I$(top_srcdir)
 
 # Source code which helps implement the ANSI C standards, and thus *should* be
 # portable to any platform having a C compiler.
-MPH_C_SOURCE =   \
-       errno.c              \
-       map.c          \
-       map.h          \
-       mph.h          \
-       signal.c       \
-       stdio.c        \
+MPH_C_SOURCE =                                 \
+       errno.c                                 \
+       map.c                                   \
+       map.h                                   \
+       mph.h                                   \
+       signal.c                                \
+       stdio.c                                 \
+       string.c                                        \
        stdlib.c
 
 # Source code which helps implement POSIX and other related Unix standards,
 # and *may* be portable between Unix platforms.
-MPH_UNIX_SOURCE = \
-       dirent.c        \
-       fcntl.c         \
-       fstab.c   \
-       grp.c           \
-       macros.c        \
-       old-map.c       \
-       old-map.h       \
-       pwd.c           \
-       serial.c        \
-       sys-mman.c      \
-       sys-sendfile.c  \
-       sys-stat.c      \
-       sys-statvfs.c   \
-       sys-time.c      \
-       sys-wait.c      \
-       sys-xattr.c     \
-       time.c          \
-       unistd.c         \
-       utime.c    \
+MPH_UNIX_SOURCE =                              \
+       fakepoll.h                              \
+       dirent.c                                \
+       fcntl.c                                 \
+       fstab.c                                 \
+       grp.c                                   \
+       macros.c                                \
+       nl.c                                    \
+       nl.h                                    \
+       old-map.c                               \
+       old-map.h                               \
+       pwd.c                                   \
+       serial.c                                \
+       sys-mman.c                              \
+       sys-sendfile.c                          \
+       sys-stat.c                              \
+       sys-statvfs.c                           \
+       sys-time.c                              \
+       sys-uio.c                               \
+       sys-utsname.c   \
+       sys-wait.c                              \
+       sys-xattr.c                             \
+       syslog.c                                \
+       time.c                                  \
+       unistd.c                                \
+       utime.c                                 \
        x-struct-str.c
 
-if PLATFORM_WIN32
+if HOST_WIN32
 MPH_SOURCE = $(MPH_C_SOURCE)
-MPH_LIBS   =
+MPH_LIBS   = $(GLIB_LIBS) $(LIBICONV)
 else
 MPH_SOURCE = $(MPH_C_SOURCE) $(MPH_UNIX_SOURCE)
-MPH_LIBS   = $(GLIB_LIBS)
+MPH_LIBS   = $(GLIB_LIBS) $(LIBICONV)
 endif
 
+MINIZIP_SOURCE = \
+       minizip/crypt.h \
+       minizip/ioapi.c \
+       minizip/ioapi.h \
+       minizip/unzip.c \
+       minizip/unzip.h \
+       minizip/zip.c   \
+       minizip/zip.h
+
+ZLIB_SOURCES = \
+       adler32.c       \
+       compress.c      \
+       crc32.c         \
+       uncompr.c       \
+       deflate.c       \
+       trees.c         \
+       zutil.c         \
+       inflate.c       \
+       infback.c       \
+       inftrees.c      \
+       inffast.c       \
+       crc32.h         \
+       deflate.h       \
+       inffast.h       \
+       inffixed.h      \
+       inflate.h       \
+       inftrees.h      \
+       trees.h         \
+       zconf.h         \
+       zlib.h          \
+       zutil.h
+
 if HAVE_ZLIB
-Z_SOURCE = \
-       zlib_macros.c
-Z_LIBS   = \
-       -lz
+Z_SOURCE = zlib-helper.c
+Z_LIBS= -lz
 else
-Z_SOURCE = 
-Z_LIBS   = 
+Z_SOURCE = zlib-helper.c $(ZLIB_SOURCES)
+Z_LIBS=
 endif
 
-libMonoPosixHelper_la_SOURCES = \
-       $(MPH_SOURCE) \
-       $(Z_SOURCE)
+libMonoPosixHelper_la_SOURCES =                        \
+       $(MPH_SOURCE)                           \
+       $(Z_SOURCE)                             \
+       $(MINIZIP_SOURCE)
+
+libMonoPosixHelper_la_LIBADD =                 \
+       $(MPH_LIBS)                             \
+       $(Z_LIBS)                               \
+       $(XATTR_LIB)
+
+# libMonoPosixHelper_la_LDFLAGS = -no-undefined -version-info 1:0:1
+libMonoPosixHelper_la_LDFLAGS = -no-undefined -avoid-version
+libMonoSupportW_la_LDFLAGS = -no-undefined -avoid-version
 
-libMonoPosixHelper_la_LIBADD = \
-       $(MPH_LIBS) \
-       $(Z_LIBS)
+libMonoSupportW_la_SOURCES =                   \
+               supportw.c                      \
+               support-heap.c                  \
+               supportw.h
 
-libMonoPosixHelper_la_LDFLAGS = -no-undefined -version-info 1:0:1
+libMonoSupportW_la_LIBADD =                    \
+               $(GLIB_LIBS) $(LIBICONV)
 
 # 
 # Use this target to refresh the values in map.[ch]
 #
 refresh:
-       $(top_builddir)/runtime/mono-wrapper $(mcs_topdir)/class/Mono.Posix/Mono.Unix/make-map.exe $(mcs_topdir)/class/lib/default/Mono.Posix.dll map
+       cp `pkg-config --variable=Programs create-native-map` . && \
+       $(top_builddir)/runtime/mono-wrapper create-native-map.exe \
+       --autoconf-member=d_off                               \
+       --autoconf-member=d_reclen                            \
+       --autoconf-member=d_type                              \
+       --exclude-native-symbol=Mono_Posix_Stdlib_snprintf    \
+       --impl-macro=_GNU_SOURCE --impl-macro=_XOPEN_SOURCE   \
+       --impl-header="<sys/types.h>"                         \
+       --impl-header="<sys/stat.h>"                          \
+       --autoconf-header="<sys/time.h>"                      \
+       --autoconf-header="<sys/poll.h>"                      \
+       --autoconf-header="<sys/wait.h>"                      \
+       --autoconf-header="<sys/statvfs.h>"                   \
+       --autoconf-header="<sys/xattr.h>"                     \
+       --autoconf-header="<sys/mman.h>"                      \
+       --autoconf-header="<sys/uio.h>"                       \
+       --autoconf-header="<unistd.h>"                        \
+       --impl-header="<fcntl.h>"                             \
+       --impl-header="<signal.h>"                            \
+       --autoconf-header="<poll.h>"                          \
+       --autoconf-header="<grp.h>"                           \
+       --impl-header="<errno.h>"                             \
+       --autoconf-header="<syslog.h>"                        \
+       --autoconf-header="<dirent.h>"                        \
+       --autoconf-header="<utime.h>"                         \
+       --impl-header="<time.h>"                              \
+       --impl-header="\"mph.h\""                             \
+       --rename-member=st_atime=st_atime_                    \
+       --rename-member=st_ctime=st_ctime_                    \
+       --rename-member=st_mtime=st_mtime_                    \
+       --rename-namespace=Mono.Unix.Native=Mono.Posix        \
+       --library=MonoPosixHelper                             \
+       $(mcs_topdir)/class/lib/net_2_0/Mono.Posix.dll map
 
+# Useful if mono is compiled with --enable-shared=no
+patch-libtool:
+       cp "../libtool" .
+       sed -e 's,build_libtool_libs=no,build_libtool_libs=yes,g' libtool > 2; mv 2 libtool
+       echo "LIBTOOL = bash ./libtool" > 1
+       echo "LTCOMPILE = bash ./libtool --mode=compile $(COMPILE)" >> 1
+       sed -e 's,LIBTOOL =,LIBTOOL2 =,g' Makefile > 2
+       sed -e 's,LTCOMPILE =,LTCOMPILE2 =,g' 2 > 3
+       cat 1 3 > Makefile
+       touch *.c