mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-30 17:36:16 +01:00
226cc663e4
Don't keep the lists of source files for libglib, libgobject and libgio in the VS project files in addition to the canonical location, the corresponding Makefile.am files. Instead, generate the corresponding .vcproj files at make dist time using the C preprocessor, from template files called .vcprojin. We still list explicitly in the .vcprojin files some of the Windows-specific source files, and the sources files of gnulib and pcre.
304 lines
8.3 KiB
Makefile
304 lines
8.3 KiB
Makefile
# GObject - GLib Type, Object, Parameter and Signal Library
|
|
# Copyright (C) 1997,98,99,2000 Tim Janik and Red Hat, Inc.
|
|
#
|
|
## Process this file with automake to produce Makefile.in
|
|
include $(top_srcdir)/Makefile.decl
|
|
|
|
SUBDIRS = . tests
|
|
|
|
if HAVE_THREADS
|
|
THREAD_FLAGS=-DG_THREADS_MANDATORY
|
|
endif
|
|
|
|
AM_CPPFLAGS = \
|
|
-DG_LOG_DOMAIN=\"GLib-GObject\" \
|
|
-I$(top_srcdir) \
|
|
-I$(top_srcdir)/glib \
|
|
-I$(top_builddir) \
|
|
$(GLIB_DEBUG_FLAGS) \
|
|
$(THREAD_FLAGS) \
|
|
-DG_DISABLE_DEPRECATED \
|
|
-DGOBJECT_COMPILATION \
|
|
-DG_DISABLE_CONST_RETURNS
|
|
|
|
gobject.def: gobject.symbols
|
|
(echo -e EXPORTS; $(CPP) -P -DINCLUDE_VARIABLES -DINCLUDE_INTERNAL_SYMBOLS -DG_OS_WIN32 -DALL_FILES - <$(srcdir)/gobject.symbols | sed -e '/^$$/d' -e 's/^/ /' -e 's/G_GNUC_[^ ]*//g' | sort) > gobject.def
|
|
|
|
gobjectalias.h: gobject.symbols
|
|
$(PERL) $(srcdir)/makegobjectalias.pl < $(srcdir)/gobject.symbols > gobjectalias.h
|
|
|
|
gobjectaliasdef.c: gobject.symbols
|
|
$(PERL) $(srcdir)/makegobjectalias.pl -def < $(srcdir)/gobject.symbols > gobjectaliasdef.c
|
|
|
|
if OS_LINUX
|
|
if HAVE_GNUC_VISIBILITY
|
|
TESTS = abicheck.sh pltcheck.sh
|
|
endif
|
|
endif
|
|
|
|
libglib = $(top_builddir)/glib/libglib-2.0.la $(top_builddir)/gthread/libgthread-2.0.la
|
|
|
|
# libraries to compile and install
|
|
lib_LTLIBRARIES = libgobject-2.0.la
|
|
|
|
if OS_WIN32_AND_DLL_COMPILATION
|
|
if MS_LIB_AVAILABLE
|
|
noinst_DATA = gobject-2.0.lib
|
|
|
|
install_ms_lib_cmd = $(INSTALL) gobject-2.0.lib $(DESTDIR)$(libdir)
|
|
uninstall_ms_lib_cmd = -rm $(DESTDIR)$(libdir)/gobject-2.0.lib
|
|
endif
|
|
endif
|
|
|
|
install-ms-lib:
|
|
$(install_ms_lib_cmd)
|
|
|
|
uninstall-ms-lib:
|
|
$(uninstall_ms_lib_cmd)
|
|
|
|
if PLATFORM_WIN32
|
|
no_undefined = -no-undefined
|
|
endif
|
|
|
|
if OS_WIN32_AND_DLL_COMPILATION
|
|
export_symbols = -export-symbols gobject.def
|
|
gobject_def = gobject.def
|
|
|
|
gobject_win32_res = gobject-win32-res.o
|
|
gobject_win32_res_ldflag = -Wl,$(gobject_win32_res)
|
|
|
|
install-def-file:
|
|
$(INSTALL) gobject.def $(DESTDIR)$(libdir)/gobject-2.0.def
|
|
|
|
uninstall-def-file:
|
|
-rm $(DESTDIR)$(libdir)/gobject-2.0.def
|
|
else
|
|
install-def-file:
|
|
uninstall-def-file:
|
|
|
|
export_symbols = $(LIBTOOL_EXPORT_OPTIONS)
|
|
endif
|
|
|
|
# libtool stuff: set version and export symbols for resolving
|
|
libgobjectincludedir = $(includedir)/glib-2.0/gobject
|
|
libgobject_2_0_la_LDFLAGS = \
|
|
$(gobject_win32_res_ldflag) \
|
|
-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
|
|
-export-dynamic $(no_undefined) $(export_symbols)
|
|
|
|
libgobject_2_0_la_LIBADD = $(libglib)
|
|
|
|
libgobject_2_0_la_DEPENDENCIES = $(gobject_win32_res) $(gobject_def)
|
|
|
|
#
|
|
# setup source file variables
|
|
#
|
|
# GObject library header files for public installation
|
|
gobject_public_h_sources = \
|
|
gboxed.h \
|
|
gclosure.h \
|
|
genums.h \
|
|
gobject.h \
|
|
gparam.h \
|
|
gparamspecs.h \
|
|
gsignal.h \
|
|
gsourceclosure.h \
|
|
gtype.h \
|
|
gtypemodule.h \
|
|
gtypeplugin.h \
|
|
gvalue.h \
|
|
gvaluearray.h \
|
|
gvaluecollector.h \
|
|
gvaluetypes.h \
|
|
gobjectnotifyqueue.c \
|
|
gmarshal.h
|
|
|
|
# GObject library header files that don't get installed
|
|
gobject_private_h_sources = \
|
|
gatomicarray.h \
|
|
gtype-private.h
|
|
|
|
# GObject library C sources to build the library from
|
|
gobject_c_sources = \
|
|
gatomicarray.c \
|
|
gboxed.c \
|
|
gclosure.c \
|
|
genums.c \
|
|
gobject.c \
|
|
gparam.c \
|
|
gparamspecs.c \
|
|
gsignal.c \
|
|
gsourceclosure.c \
|
|
gtype.c \
|
|
gtypemodule.c \
|
|
gtypeplugin.c \
|
|
gvalue.c \
|
|
gvaluearray.c \
|
|
gvaluetransform.c \
|
|
gvaluetypes.c
|
|
|
|
# these sources (also mentioned above) are generated.
|
|
BUILT_SOURCES = gmarshal.h gmarshal.c gobjectalias.h gobjectaliasdef.c
|
|
|
|
# non-header sources (headers should be specified in the above variables)
|
|
# that don't serve as direct make target sources, i.e. they don't have
|
|
# their own .lo rules and don't get publically installed
|
|
gobject_extra_sources = \
|
|
gmarshal.list \
|
|
gmarshal.strings \
|
|
gobject.symbols
|
|
|
|
|
|
#
|
|
# setup GObject library sources and their dependancies
|
|
#
|
|
gobject_target_headers = $(gobject_public_h_sources)
|
|
gobject_target_sources = $(gobject_c_sources)
|
|
EXTRA_HEADERS =
|
|
EXTRA_DIST += \
|
|
$(gobject_private_h_sources) \
|
|
$(gobject_extra_sources) \
|
|
makegobjectalias.pl \
|
|
marshal-genstrings.pl
|
|
|
|
#
|
|
# rules to generate built sources
|
|
#
|
|
# setup autogeneration dependancies
|
|
gen_sources = xgen-gmh xgen-gmc xgen-gms
|
|
CLEANFILES = $(gen_sources)
|
|
|
|
# normal autogeneration rules
|
|
# all autogenerated files need to be generated in the srcdir,
|
|
# so old versions get remade and are not confused with newer
|
|
# versions in the build dir. thus a development setup requires
|
|
# srcdir to be writable, passing --disable-rebuilds to
|
|
# ../configure will supress all autogeneration rules.
|
|
|
|
if CROSS_COMPILING
|
|
glib_genmarshal=$(GLIB_GENMARSHAL)
|
|
else
|
|
glib_genmarshal=./glib-genmarshal
|
|
endif
|
|
|
|
gmarshal.h: stamp-gmarshal.h
|
|
@true
|
|
stamp-gmarshal.h: @REBUILD@ gmarshal.list glib-genmarshal$(EXEEXT)
|
|
$(MAKE) glib-genmarshal$(EXEEXT)
|
|
echo "#ifndef __G_MARSHAL_H__" > xgen-gmh \
|
|
&& echo "#define __G_MARSHAL_H__" >> xgen-gmh \
|
|
&& $(glib_genmarshal) --nostdinc --prefix=g_cclosure_marshal $(srcdir)/gmarshal.list --header >> xgen-gmh \
|
|
&& echo "#endif /* __G_MARSHAL_H__ */" >> xgen-gmh \
|
|
&& (cmp -s xgen-gmh gmarshal.h 2>/dev/null || cp xgen-gmh gmarshal.h) \
|
|
&& rm -f xgen-gmh xgen-gmh~ \
|
|
&& echo timestamp > $@
|
|
|
|
gmarshal.c: @REBUILD@ stamp-gmarshal.h
|
|
$(glib_genmarshal) --nostdinc --prefix=g_cclosure_marshal $(srcdir)/gmarshal.list --body >> xgen-gmc \
|
|
&& cp xgen-gmc gmarshal.c \
|
|
&& rm -f xgen-gmc xgen-gmc~
|
|
|
|
gmarshal.strings: @REBUILD@ $(srcdir)/gmarshal.list
|
|
grep '^[A-Z]' $(srcdir)/gmarshal.list \
|
|
| sed -e 's/^/"g_cclosure_marshal_/' -e 's/:/__/' -e 's/,/_/g' -e 's/$$/",/' > xgen-gms \
|
|
&& cp xgen-gms gmarshal.strings \
|
|
&& rm -f xgen-gms xgen-gms~
|
|
|
|
glib-genmarshal.o: gmarshal.strings
|
|
gsignal.lo: gmarshal.c
|
|
|
|
|
|
# target platform:
|
|
libgobjectinclude_HEADERS = $(gobject_target_headers)
|
|
libgobject_2_0_la_SOURCES = $(gobject_target_sources)
|
|
|
|
#
|
|
# programs to compile and install
|
|
#
|
|
bin_PROGRAMS = gobject-query glib-genmarshal
|
|
bin_SCRIPTS = glib-mkenums
|
|
noinst_PROGRAMS = testgobject
|
|
# source files
|
|
gobject_query_SOURCES = gobject-query.c
|
|
glib_genmarshal_SOURCES = glib-genmarshal.c
|
|
testgobject_SOURCES = testgobject.c
|
|
# link programs against libgobject
|
|
progs_LDADD = ./libgobject-2.0.la $(libglib)
|
|
glib_genmarshal_LDADD = $(libglib)
|
|
gobject_query_LDADD = $(progs_LDADD)
|
|
testgobject_LDADD = $(progs_LDADD)
|
|
|
|
#
|
|
# auxillary files
|
|
#
|
|
EXTRA_DIST += \
|
|
makefile.msc.in \
|
|
gobject.rc.in \
|
|
libgobject-gdb.py.in \
|
|
glib-genmarshal.1 \
|
|
glib-mkenums.in \
|
|
glib-mkenums.1 \
|
|
abicheck.sh \
|
|
pltcheck.sh
|
|
|
|
BUILT_EXTRA_DIST = \
|
|
makefile.msc \
|
|
gobject.rc \
|
|
gmarshal.h \
|
|
gmarshal.c \
|
|
stamp-gmarshal.h \
|
|
gobjectalias.h \
|
|
gobjectaliasdef.c
|
|
|
|
gobject-win32-res.o: gobject.rc
|
|
$(WINDRES) gobject.rc $@
|
|
|
|
gobject-2.0.lib: libgobject-2.0.la gobject.def
|
|
lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgobject-2.0-$(LT_CURRENT_MINUS_AGE).dll -def:gobject.def -out:$@
|
|
|
|
dist-hook: $(BUILT_EXTRA_DIST) ../build/win32/vs9/gobject.vcproj
|
|
files='$(BUILT_EXTRA_DIST)'; \
|
|
for f in $$files; do \
|
|
if test -f $$f; then d=.; else d=$(srcdir); fi; \
|
|
cp $$d/$$f $(distdir) || exit 1; done
|
|
|
|
../build/win32/vs9/gobject.vcproj: $(top_srcdir)/build/win32/vs9/gobject.vcprojin
|
|
for F in $(libgobject_2_0_la_SOURCES); do \
|
|
case $$F in \
|
|
*.c) echo ' <File RelativePath="..\..\..\gobject\'$$F'" />' \
|
|
;; \
|
|
esac; \
|
|
done >libgobject.sourcefiles
|
|
$(CPP) -P - <$(top_srcdir)/build/win32/vs9/gobject.vcprojin >$@
|
|
|
|
install-data-local: install-ms-lib install-def-file
|
|
|
|
uninstall-local: uninstall-ms-lib uninstall-def-file uninstall-gdb
|
|
|
|
distclean-local:
|
|
if test $(srcdir) = .; then :; else \
|
|
rm -f $(BUILT_EXTRA_DIST); \
|
|
rm -f libgobject-gdb.py; \
|
|
fi
|
|
|
|
# install gdb scripts
|
|
gdbdir = $(datadir)/glib-2.0/gdb
|
|
dist_gdb_SCRIPTS = gobject.py
|
|
|
|
libgobject-gdb.py: libgobject-gdb.py.in
|
|
sed -e "s|\@datadir\@|$(datadir)|" $(srcdir)/libgobject-gdb.py.in > libgobject-gdb.py
|
|
|
|
uninstall-gdb:
|
|
-rm -r $(DESTDIR)$(datadir)/gdb
|
|
|
|
install-data-hook: libgobject-gdb.py
|
|
mkdir -p $(DESTDIR)$(datadir)/gdb/auto-load/$(ABS_GLIB_RUNTIME_LIBDIR)
|
|
$(INSTALL) libgobject-gdb.py $(DESTDIR)$(datadir)/gdb/auto-load/$(ABS_GLIB_RUNTIME_LIBDIR)/libgobject-2.0.so.0.$(LT_CURRENT).$(LT_REVISION)-gdb.py
|
|
if HAVE_GLIB_RUNTIME_LIBDIR
|
|
mkdir -p $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
|
|
mv $(DESTDIR)$(libdir)/libgobject-2.0.so.0 $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
|
|
mv $(DESTDIR)$(libdir)/libgobject-2.0.so.0.$(LT_CURRENT).$(LT_REVISION) $(DESTDIR)$(libdir)/$(GLIB_RUNTIME_LIBDIR)
|
|
rm -f $(DESTDIR)$(libdir)/libgobject-2.0.so
|
|
ln -s $(GLIB_RUNTIME_LIBDIR)/libgobject-2.0.so.0.$(LT_CURRENT).$(LT_REVISION) $(DESTDIR)$(libdir)/libgobject-2.0.so
|
|
endif
|