| ## Makefile for building the GLib, gmodule and gthread DLLs with |
| ## egcs on cygwin. |
| ## Use: make -f makefile.cygwin install |
| |
| # Change this to wherever you want to install the DLLs. This directory |
| # should be in your PATH. |
| BIN = /bin |
| |
| # This is the location of pthreads for Win32, |
| # see http://sourceware.cygnus.com/pthreads-win32/ |
| # We want the 1999-05-30 snapshot. |
| PTHREADS = ../pthreads-snap-1999-05-30 |
| PTHREAD_LIB = -L$(PTHREADS) -lpthread32 |
| PTHREAD_INC = -I $(PTHREADS) |
| |
| OPTIMIZE = -g -O |
| |
| ################################################################ |
| |
| # Nothing much configurable below |
| |
| CC = gcc -mno-cygwin -mpentium |
| |
| CP = cp |
| LD = ld |
| DLLTOOL = dlltool |
| INSTALL = install |
| |
| GLIB_VER = @GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@ |
| |
| CFLAGS = $(OPTIMIZE) -I. -DHAVE_CONFIG_H |
| |
| all : \ |
| config.h \ |
| glibconfig.h \ |
| glib-$(GLIB_VER).gcc.dll \ |
| gmodule/gmoduleconf.h \ |
| gmodule-$(GLIB_VER).gcc.dll \ |
| gthread-$(GLIB_VER).gcc.dll \ |
| testglib.exe \ |
| testgmodule.exe \ |
| testgdate.exe \ |
| testgdateparser.exe |
| |
| install : all |
| $(INSTALL) glib-$(GLIB_VER).gcc.dll $(BIN) |
| $(INSTALL) gmodule-$(GLIB_VER).gcc.dll $(BIN) |
| $(INSTALL) gthread-$(GLIB_VER).gcc.dll $(BIN) |
| |
| glib_OBJECTS = \ |
| garray.o \ |
| gcache.o \ |
| gcompletion.o \ |
| gdataset.o \ |
| gdate.o \ |
| gerror.o \ |
| ghook.o \ |
| ghash.o \ |
| giochannel.o \ |
| giowin32.o \ |
| glist.o \ |
| gmain.o \ |
| gmem.o \ |
| gmessages.o \ |
| gnode.o \ |
| gprimes.o \ |
| gqueue.o \ |
| grand.o \ |
| gslist.o \ |
| gstack.o \ |
| gthread.o \ |
| gtimer.o \ |
| gtree.o \ |
| grel.o \ |
| gstring.o \ |
| gstrfuncs.o \ |
| gscanner.o \ |
| gutils.o |
| |
| glib-$(GLIB_VER).gcc.dll : $(glib_OBJECTS) glib.def |
| ./build-dll glib $(GLIB_VER).gcc glib.def $(glib_OBJECTS) -luser32 -lwsock32 |
| |
| glibconfig.h: glibconfig.h.win32 |
| $(CP) glibconfig.h.win32 glibconfig.h |
| |
| config.h: config.h.win32 |
| $(CP) config.h.win32 config.h |
| |
| .c.o : |
| $(CC) $(CFLAGS) -c -DGLIB_COMPILATION -DG_LOG_DOMAIN=g_log_domain_glib $< |
| |
| gmodule_OBJECTS = \ |
| gmodule.o |
| |
| gmodule-$(GLIB_VER).gcc.dll : $(gmodule_OBJECTS) gmodule/gmodule.def |
| ./build-dll gmodule $(GLIB_VER).gcc gmodule/gmodule.def $(gmodule_OBJECTS) -L. -lglib-$(GLIB_VER).gcc -lwsock32 |
| |
| gmodule.o : gmodule/gmodule.c gmodule/gmodule-win32.c |
| $(CC) $(CFLAGS) -Igmodule -c -DG_LOG_DOMAIN=\"GModule\" gmodule/gmodule.c |
| |
| gmodule/gmoduleconf.h: gmodule/gmoduleconf.h.win32 |
| $(CP) gmodule/gmoduleconf.h.win32 gmodule/gmoduleconf.h |
| |
| gthread_OBJECTS = \ |
| gthread-impl.o |
| |
| gthread-$(GLIB_VER).gcc.dll : $(gthread_OBJECTS) glib-$(GLIB_VER).gcc.dll gthread/gthread.def |
| ./build-dll gthread $(GLIB_VER).gcc gthread/gthread.def $(gthread_OBJECTS) -L. -lglib-$(GLIB_VER).gcc $(PTHREAD_LIB) |
| |
| gthread-impl.o : gthread/gthread-impl.c gthread/gthread-posix.c |
| $(CC) $(CFLAGS) $(PTHREAD_INC) -DG_LOG_DOMAIN=\"GThread\" -c gthread/gthread-impl.c |
| |
| testglib.exe : glib-$(GLIB_VER).gcc.dll testglib.o |
| $(CC) $(CFLAGS) -o testglib testglib.o -L. -lglib-$(GLIB_VER).gcc $(LDFLAGS) |
| |
| testglib.o : testglib.c |
| $(CC) -c $(CFLAGS) testglib.c |
| |
| testgdate.exe : glib-$(GLIB_VER).gcc.dll testgdate.o |
| $(CC) $(CFLAGS) -o testgdate.exe testgdate.o -L. -lglib-$(GLIB_VER).gcc $(LDFLAGS) |
| |
| testgdate.o : testgdate.c |
| $(CC) -c $(CFLAGS) testgdate.c |
| |
| testgdateparser.exe : glib-$(GLIB_VER).gcc.dll testgdateparser.o |
| $(CC) $(CFLAGS) -o testgdateparser.exe testgdateparser.o -L. -lglib-$(GLIB_VER).gcc $(LDFLAGS) |
| |
| testgdateparser.o : testgdateparser.c |
| $(CC) -c $(CFLAGS) testgdateparser.c |
| |
| testgmodule.exe : glib-$(GLIB_VER).gcc.dll gmodule-$(GLIB_VER).gcc.dll testgmodule.o libgplugin_a.dll libgplugin_b.dll |
| # Wow, do we really have to do it like this to get some symbols |
| # exported from a .exe? Apparently yes. Does the __declspec(dllexport) |
| # actually do anything in egcs-1.1.2? |
| $(CC) $(CFLAGS) -Wl,--base-file,testgmodule.base -o testgmodule.exe testgmodule.o -L. -lglib-$(GLIB_VER).gcc -lgmodule-$(GLIB_VER).gcc $(LDFLAGS) |
| $(DLLTOOL) --base-file testgmodule.base --output-exp testgmodule.exp testgmodule.o |
| $(CC) $(CFLAGS) -Wl,--base-file,testgmodule.base,testgmodule.exp -o testgmodule.exe testgmodule.o -L. -lglib-$(GLIB_VER).gcc -lgmodule-$(GLIB_VER).gcc $(LDFLAGS) |
| $(DLLTOOL) --base-file testgmodule.base --output-exp testgmodule.exp testgmodule.o |
| $(CC) $(CFLAGS) -Wl,testgmodule.exp -o testgmodule.exe testgmodule.o -L. -lglib-$(GLIB_VER).gcc -lgmodule-$(GLIB_VER).gcc $(LDFLAGS) |
| |
| testgmodule.o : gmodule/testgmodule.c |
| $(CC) $(CFLAGS) -Igmodule -c gmodule/testgmodule.c |
| |
| libgplugin_a.dll : libgplugin_a.o |
| ./build-dll libgplugin_a - - libgplugin_a.o -L. -lglib-$(GLIB_VER).gcc -lgmodule-$(GLIB_VER).gcc |
| |
| libgplugin_a.o : gmodule/libgplugin_a.c |
| $(CC) $(CFLAGS) -Igmodule -c gmodule/libgplugin_a.c |
| |
| libgplugin_b.dll : libgplugin_b.o |
| ./build-dll libgplugin_b - - libgplugin_b.o -L. -lglib-$(GLIB_VER).gcc -lgmodule-$(GLIB_VER).gcc |
| |
| libgplugin_b.o : gmodule/libgplugin_b.c |
| $(CC) $(CFLAGS) -Igmodule -c gmodule/libgplugin_b.c |
| |
| clean: |
| -rm config.h glibconfig.h gmodule/gmoduleconf.h |
| -rm *.exe *.o *.dll *.a *.base *.exp |