-noinst_HEADERS = pack.h
-
-if BUILD_UPKG
-bin_PROGRAMS = upkg
-upkg_SOURCES = upkg.c exportable.c serializable.c music.c
-upkg_CFLAGS = $(GLIB_CFLAGS)
-upkg_LDFLAGS = $(GLIB_LIBS)
-upkg_LDADD = libupkg.la $(LIBLTDL)
-endif
+noinst_HEADERS = pack.h
+
+# This trick should define orderonly to | iff we're using GNU make.
+have_orderonly = $(findstring order-only,$(.FEATURES))
+orderonly = $(have_orderonly:order-only=|)
+
+include uobject/Makefile.inc
+include engine/Makefile.inc
+
+libupkg_la_SOURCES = libupkg.c pack.c
+
+bin_PROGRAMS = upkg
+upkg_SOURCES = upkg.c
+upkg_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
+upkg_LDFLAGS = $(AM_LDFLAGS) -export-dynamic
+upkg_LDADD = libuobject.la libupkg.la $(GLIB_LIBS) -lgnu
+
+GOB_V = $(GOB_V_$(V))
+GOB_V_ = $(GOB_V_$(AM_DEFAULT_VERBOSITY))
+GOB_V_0 = @echo " GOB " $<;
+
+.gob.gobstamp:
+ $(AM_V_at) touch $@.tmp
+ $(GOB_V) $(GOB2) --file-sep=/ --no-private-header $<
+ $(AM_V_at) mv -f $@.tmp $@
+
+.gobstamp.c:
+ @if test -f $@; then :; else \
+ rm -f $<; \
+ $(MAKE) $(AM_MAKEFLAGS) $<; \
+ fi
+
+.gobstamp.h:
+ @if test -f $@; then :; else \
+ rm -f $<; \
+ $(MAKE) $(AM_MAKEFLAGS) $<; \
+ fi