Fix out of tree build for MinGW/MSYS
[platform/upstream/glib.git] / gio / Makefile.am
index da76927..69db690 100644 (file)
@@ -8,11 +8,6 @@ if OS_UNIX
 SUBDIRS += xdgmime
 endif
 
-noinst_PROGRAMS = data-to-c
-
-data_to_c_SOURCES = data-to-c.c
-data_to_c_LDADD = $(top_builddir)/glib/libglib-2.0.la
-
 if OS_WIN32_AND_DLL_COMPILATION
 if MS_LIB_AVAILABLE
 noinst_DATA = gio-2.0.lib
@@ -29,8 +24,8 @@ uninstall-ms-lib:
        $(uninstall_ms_lib_cmd)
 
 gio.def: gio.symbols
-       $(AM_V_GEN) (echo EXPORTS; $(CPP) -P -DINCLUDE_VARIABLES -DINCLUDE_INTERNAL_SYMBOLS -DG_OS_WIN32 -DALL_FILES - <$(srcdir)/gio.symbols | sed -e '/^$$/d' -e 's/^/        /' -e 's/G_GNUC_[^ ]*//g' | sort) > gio.def.tmp && \
-         mv gio.def.tmp gio.def
+       $(AM_V_GEN) (echo EXPORTS; $(CPP) -P -DINCLUDE_VARIABLES -DINCLUDE_INTERNAL_SYMBOLS -DG_OS_WIN32 -DALL_FILES - <$(srcdir)/gio.symbols | sed -e '/^$$/d' -e 's/^/        /' -e 's/G_GNUC_[^ ]*//g' | sort) > $(builddir)/gio.def.tmp && \
+         mv $(builddir)/gio.def.tmp $(builddir)/gio.def
 
 if OS_LINUX
 if HAVE_GNUC_VISIBILITY
@@ -469,14 +464,14 @@ no_undefined = -no-undefined
 endif
 
 if OS_WIN32_AND_DLL_COMPILATION
-export_symbols = -export-symbols gio.def
+export_symbols = -export-symbols $(builddir)/gio.def
 gio_def = gio.def
 
 gio_win32_res = gio-win32-res.o
 gio_win32_res_ldflag = -Wl,$(gio_win32_res)
 
 install-def-file:
-       $(INSTALL) gio.def $(DESTDIR)$(libdir)/gio-2.0.def
+       $(INSTALL) $(builddir)/gio.def $(DESTDIR)$(libdir)/gio-2.0.def
 
 uninstall-def-file:
        -rm $(DESTDIR)$(libdir)/gio-2.0.def
@@ -612,6 +607,7 @@ BUILT_SOURCES =             \
        $(NULL)
 
 EXTRA_DIST +=                  \
+       data-to-c.pl            \
        gio.symbols             \
        gioenumtypes.h.template \
        gioenumtypes.c.template \
@@ -619,6 +615,7 @@ EXTRA_DIST +=                       \
        abicheck.sh             \
        gio.rc.in               \
        gschema.dtd             \
+       gconstructor_as_data.h  \
        $(NULL)
 
 BUILT_EXTRA_DIST =             \
@@ -628,7 +625,7 @@ BUILT_EXTRA_DIST =          \
 gio-public-headers.txt: Makefile
        echo $(gioinclude_HEADERS) $(giowin32include_HEADERS) $(giounixinclude_HEADERS) > $@.tmp && mv $@.tmp $@
 
-CLEANFILES = gio-public-headers.txt
+CLEANFILES = gio-public-headers.txt gconstructor_as_data.h
 
 all-local: gio-public-headers.txt
 
@@ -643,7 +640,7 @@ gioenumtypes.c: $(gio_headers) gioenumtypes.c.template
            gioenumtypes.c.tmp && mv gioenumtypes.c.tmp gioenumtypes.c
 
 gio-2.0.lib: libgio-2.0.la gio.def
-       lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgio-2.0-$(LT_CURRENT_MINUS_AGE).dll -def:gio.def -out:$@
+       lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgio-2.0-$(LT_CURRENT_MINUS_AGE).dll -def:$(builddir)/gio.def -out:$@
 
 bin_PROGRAMS = gio-querymodules glib-compile-schemas glib-compile-resources gsettings
 
@@ -666,8 +663,8 @@ gio_querymodules_LDADD       = \
        libgio-2.0.la                                   \
        $(NULL)
 
-gconstructor_as_data.h: $(top_srcdir)/glib/gconstructor.h data-to-c$(EXEEXT)
-       $(builddir)/data-to-c $(top_srcdir)/glib/gconstructor.h gconstructor_code > gconstructor_as_data.h
+gconstructor_as_data.h: $(top_srcdir)/glib/gconstructor.h data-to-c.pl
+       $(AM_V_GEN) $(srcdir)/data-to-c.pl $(top_srcdir)/glib/gconstructor.h gconstructor_code > $@.tmp && mv $@.tmp $@
 
 glib_compile_schemas_LDADD = $(top_builddir)/glib/libglib-2.0.la
 glib_compile_schemas_SOURCES = \