better filtering of G_GNUC_* stuff when generating .def files. Now also
authorHans Breuer <hans@breuer.org>
Sun, 17 Sep 2006 16:17:44 +0000 (16:17 +0000)
committerHans Breuer <hans@src.gnome.org>
Sun, 17 Sep 2006 16:17:44 +0000 (16:17 +0000)
2006-09-17  Hans Breuer  <hans@breuer.org>

* glib/makefile.msc.in gobject/makefile.msc.in : better filtering
of G_GNUC_* stuff when generating .def files. Now also works with
newer (less tolerant) linkers, e.g. from vc2500e

ChangeLog
glib/makefile.msc.in
gobject/makefile.msc.in

index d042823..2da6471 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-09-17  Hans Breuer  <hans@breuer.org>
+
+       * glib/makefile.msc.in gobject/makefile.msc.in : better filtering
+       of G_GNUC_* stuff when generating .def files. Now also works with
+       newer (less tolerant) linkers, e.g. from vc2500e
+
 2006-09-10  Matthias Clasen  <mclasen@redhat.com>
 
        * glib/gbacktrace.c: Assume string.h is available. 
index 76fe588..d04b33c 100644 (file)
@@ -1,5 +1,5 @@
-## Makefile for building the GLib dlls with Microsoft C
-## Use: nmake -f makefile.msc
+## Makefile for building the gobject dll with Microsoft C
+## Use: nmake -f makefile.msc install
 
 TOP = ..\..
 
@@ -7,122 +7,85 @@ TOP = ..\..
 
 ################################################################
 
-INCLUDES = -FImsvc_recommended_pragmas.h -I . -I ..
-DEFINES = -DHAVE_CONFIG_H -DGLIB_COMPILATION -DG_LOG_DOMAIN=\"GLib\" -DG_ENABLE_DEBUG
-DEPCFLAGS = -Zm400 $(INTL_CFLAGS) $(LIBICONV_CFLAGS) $(DIRENT_CFLAGS)
+INCLUDES = -FImsvc_recommended_pragmas.h -I .. -I . -I ..\glib
+DEFINES = -DHAVE_CONFIG_H -DGOBJECT_COMPILATION -DG_LOG_DOMAIN=\"GLib-GObject\" \
+               -DG_ENABLE_DEBUG
+#              -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS
+#              -DG_DISABLE_CAST_CHECKS
 
 all :                          \
-       ..\config.h             \
-       ..\glibconfig.h \
-       galias.h                \
-       galiasdef.c             \
-       gnulib\gnulib.lib       \
-       libglib-2.0-0.dll \
-       glib-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@s.lib \
-       gspawn-win32-helper.exe \
-
-
-gnulib\gnulib.lib :
-       cd gnulib
-       nmake -f makefile.msc
-       cd ..
-
-glib_OBJECTS =                 \
-       garray.obj              \
-       gasyncqueue.obj         \
-       gatomic.obj     \
-       gbacktrace.obj          \
-       gbase64.obj     \
-       gbookmarkfile.obj       \
-       gcache.obj              \
-       gcompletion.obj         \
-       gconvert.obj            \
-       gdataset.obj            \
-       gdate.obj               \
-       gdir.obj        \
-       gerror.obj              \
-       gfileutils.obj          \
-       ghash.obj               \
-       ghook.obj               \
-       gkeyfile.obj            \
-       gmappedfile.obj \
-       giochannel.obj          \
-       giowin32.obj            \
-       glist.obj               \
-       gmain.obj               \
-       gmarkup.obj             \
-       gmem.obj                \
-       gmessages.obj           \
-       gnode.obj               \
-       goption.obj     \
-       gprimes.obj             \
-       gqsort.obj              \
-       gqueue.obj              \
-       gpattern.obj    \
-       gprintf.obj     \
-       grand.obj               \
-       grel.obj                \
-       gscanner.obj            \
-       gshell.obj              \
-       gslice.obj      \
-       gslist.obj              \
-       gspawn-win32.obj        \
-       gstdio.obj      \
-       gstrfuncs.obj           \
-       gstring.obj             \
-       gthread.obj             \
-       gthreadpool.obj         \
-       gtimer.obj              \
-       gtree.obj               \
-       gunibreak.obj           \
-       gunicollate.obj         \
-       gunidecomp.obj          \
-       guniprop.obj            \
-       gutf8.obj               \
-       gutils.obj              \
-       gwin32.obj              \
-       localcharset.obj
-
-..\glibconfig.h: ..\glibconfig.h.win32
-       copy ..\glibconfig.h.win32 ..\glibconfig.h
-
-..\config.h: ..\config.h.win32
-       copy ..\config.h.win32 ..\config.h
-
-galias.h: glib.symbols
-       perl makegalias.pl < glib.symbols > galias.h
-
-galiasdef.c: glib.symbols
-         perl makegalias.pl -def < glib.symbols > galiasdef.c
-
-localcharset.c : libcharset/localcharset.c
-       copy libcharset\localcharset.c localcharset.c
-
-glib.def: glib.symbols
-       echo EXPORTS > glib.def
-       cl /EP -DINCLUDE_VARIABLES -DG_OS_WIN32 -DINCLUDE_INTERNAL_SYMBOLS -DALL_FILES glib.symbols >> glib.def
-
-glib.res : glib.rc
-       rc -DBUILDNUMBER=0 -r -fo glib.res glib.rc
-
-################ glib
-
-# create a static libary
-# static library can well have the real version number in the name
-glib-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@s.lib : $(glib_OBJECTS) gnulib\gnulib.lib
-       lib /out:glib-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@s.lib $(glib_OBJECTS) gnulib\gnulib.lib
-
-libglib-2.0-0.dll : $(glib_OBJECTS) gnulib\gnulib.lib glib.def glib.res
-       $(CC) $(CFLAGS) -LD -Fe$@ $(glib_OBJECTS) glib.res $(LIBICONV_LIBS) $(INTL_LIBS) \
-       gnulib\gnulib.lib $(DIRENT_LIBS) user32.lib advapi32.lib shell32.lib wsock32.lib ole32.lib ws2_32.lib \
-       $(LDFLAGS) /implib:glib-2.0.lib /def:glib.def
-
-gspawn-win32-helper.exe : gspawn-win32-helper.c libglib-2.0-@LT_CURRENT_MINUS_AGE@.dll
-       $(CC) $(CFLAGS) -Fe$@ -DG_LOG_DOMAIN=\"gspawn-win32-helper\" gspawn-win32-helper.c glib-2.0.lib $(LDFLAGS) /subsystem:windows user32.lib
-
-################ other stuff
-
-clean::
-       del ..\config.h
-       del ..\glibconfig.h
-
+       glib-genmarshal.exe     \
+       gmarshal.h              \
+       gmarshal.c              \
+       gobjectalias.h  \
+       gobjectaliasdef.c \
+       gmarshal.strings \
+       gobject-query.exe \
+       libgobject-2.0-@LT_CURRENT_MINUS_AGE@.dll       \
+       gobject-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@s.lib \
+       testgobject.exe
+
+gobject_OBJECTS =              \
+       gboxed.obj              \
+       gclosure.obj            \
+       genums.obj              \
+       gobject.obj             \
+       gparam.obj              \
+       gparamspecs.obj         \
+       gsignal.obj             \
+       gsourceclosure.obj      \
+       gtype.obj               \
+       gtypemodule.obj         \
+       gtypeplugin.obj         \
+       gvalue.obj              \
+       gvaluearray.obj         \
+       gvaluetypes.obj \
+       gvaluetransform.obj
+
+gobjectalias.h: gobject.symbols
+       perl makegobjectalias.pl < gobject.symbols > gobjectalias.h
+
+gobjectaliasdef.c: gobject.symbols
+       perl makegobjectalias.pl -def < gobject.symbols > gobjectaliasdef.c
+
+gobject.def: gobject.symbols
+       echo EXPORTS > gobject.def
+       cl /EP -DINCLUDE_VARIABLES -DG_OS_WIN32 -DALL_FILES \
+               -DG_GNUC_MALLOC= -DG_GNUC_CONST= -DG_GNUC_NULL_TERMINATED= -DG_GNUC_NORETURN= \
+               -DG_GNUC_PRINTF=;G_GNUC_PRINTF gobject.symbols >> gobject.def
+
+gobject.res : gobject.rc
+       rc -DBUILDNUMBER=0 -r -fo gobject.res gobject.rc
+
+gmarshal.h : gmarshal.list glib-genmarshal.exe
+       echo #ifndef __G_MARSHAL_H__ > xgen-gmh
+       echo #define __G_MARSHAL_H__ >> xgen-gmh
+       glib-genmarshal --nostdinc --prefix=g_cclosure_marshal gmarshal.list --header >> xgen-gmh
+       echo #endif /* __G_MARSHAL_H__ */ >> xgen-gmh
+       copy xgen-gmh gmarshal.h
+
+gmarshal.c: gmarshal.list gmarshal.h glib-genmarshal.exe
+       glib-genmarshal --nostdinc --prefix=g_cclosure_marshal gmarshal.list --body > gmarshal.c
+
+libgobject-2.0-@LT_CURRENT_MINUS_AGE@.dll : $(gobject_OBJECTS) gobject.def gobject.res
+       $(CC) $(CFLAGS) -Fm -LD -Fe$@ $(gobject_OBJECTS) gobject.res \
+       ..\glib\glib-2.0.lib $(LDFLAGS) /implib:gobject-2.0.lib /def:gobject.def || del $@
+
+gobject-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@s.lib : $(gobject_OBJECTS) 
+       lib /out:$@ $(gobject_OBJECTS)
+
+# link glib's static version to avoid installing 
+glib-genmarshal.exe : glib-genmarshal.c gmarshal.strings
+       $(CC) -Fe$@ $(CFLAGS) -UGOBJECT_COMPILATION glib-genmarshal.c \
+       ..\glib\glib-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@s.lib user32.lib advapi32.lib ole32.lib shell32.lib $(INTL_LIBS) $(LIBICONV_LIBS)
+
+gobject-query.exe : gobject-query.c libgobject-2.0-@LT_CURRENT_MINUS_AGE@.dll
+       $(CC) -Fe$@ $(CFLAGS) -UGOBJECT_COMPILATION gobject-query.c \
+       ..\glib\glib-2.0.lib gobject-2.0.lib user32.lib advapi32.lib $(INTL_LIBS) $(LIBICONV_LIBS)
+
+gmarshal.strings : gmarshal.list
+       perl marshal-genstrings.pl > gmarshal.strings
+
+.c.exe :
+       $(CC) $(CFLAGS) -c $<
+       $(CC) $(CFLAGS) -Fe$@ $< gobject-2.0.lib ..\glib\glib-2.0.lib ..\gmodule\gmodule-2.0.lib $(LDFLAGS) user32.lib /subsystem:console
index de51249..d04b33c 100644 (file)
@@ -50,7 +50,9 @@ gobjectaliasdef.c: gobject.symbols
 
 gobject.def: gobject.symbols
        echo EXPORTS > gobject.def
-       cl /EP -DINCLUDE_VARIABLES -DG_OS_WIN32 -DALL_FILES gobject.symbols >> gobject.def
+       cl /EP -DINCLUDE_VARIABLES -DG_OS_WIN32 -DALL_FILES \
+               -DG_GNUC_MALLOC= -DG_GNUC_CONST= -DG_GNUC_NULL_TERMINATED= -DG_GNUC_NORETURN= \
+               -DG_GNUC_PRINTF=;G_GNUC_PRINTF gobject.symbols >> gobject.def
 
 gobject.res : gobject.rc
        rc -DBUILDNUMBER=0 -r -fo gobject.res gobject.rc
@@ -67,7 +69,7 @@ gmarshal.c: gmarshal.list gmarshal.h glib-genmarshal.exe
 
 libgobject-2.0-@LT_CURRENT_MINUS_AGE@.dll : $(gobject_OBJECTS) gobject.def gobject.res
        $(CC) $(CFLAGS) -Fm -LD -Fe$@ $(gobject_OBJECTS) gobject.res \
-       ..\glib\glib-2.0.lib $(LDFLAGS) /implib:gobject-2.0.lib /def:gobject.def
+       ..\glib\glib-2.0.lib $(LDFLAGS) /implib:gobject-2.0.lib /def:gobject.def || del $@
 
 gobject-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@s.lib : $(gobject_OBJECTS) 
        lib /out:$@ $(gobject_OBJECTS)