nexmon – Rev 1

Subversion Repositories:
Rev:
## Makefile for building the gobject dll with Microsoft C
## Use: nmake -f makefile.msc install

TOP = ..\..

!INCLUDE ..\build\win32\make.msc

################################################################

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 :                           \
        glib-genmarshal.exe     \
        gmarshal.h              \
        gmarshal.c              \
        gmarshal.strings \
        gobject-query.exe \
        libgobject-2.0-0.dll    \
        gobject-2.48s.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

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-0.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-2.48s.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-2.48s.lib user32.lib advapi32.lib ole32.lib shell32.lib $(INTL_LIBS) 

gobject-query.exe : gobject-query.c libgobject-2.0-0.dll
        $(CC) -Fe$@ $(CFLAGS) -UGOBJECT_COMPILATION gobject-query.c \
        ..\glib\glib-2.0.lib gobject-2.0.lib user32.lib advapi32.lib $(INTL_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