]> git.draconx.ca Git - upkg.git/blobdiff - Makefile.am
Improve GOB rebuild rules for VPATH builds.
[upkg.git] / Makefile.am
index b1330d05cd1dfa0a9e94fbf3173d2271ea070e65..e5140a4679fddcccc4d4b2b9ddaa7e46a6aa2768 100644 (file)
@@ -47,7 +47,8 @@ uobject_HEADERS = src/uobject/uobject.h src/uobject/exportable.h \
 
 libuobject_la_SOURCES = src/uobject/uobject.c src/uobject/module.c \
        src/uobject/avl.c src/uobject/avl.h src/uobject/package.c \
-       src/uobject/exportable.c src/uobject/loadable.c src/uobject/vfs.c
+       src/uobject/exportable.c src/uobject/loadable.c src/uobject/vfs.c \
+       src/uobject/primitives.c
 libuobject_la_LDFLAGS  = $(AM_LDFLAGS) -export-symbols-regex '^u_'
 libuobject_la_LIBADD   = libgnu.la $(LIBLTDL) $(GLIB_LIBS)
 $(libuobject_la_OBJECTS): $(gnulib_headers)
@@ -58,7 +59,7 @@ $(libuobject_la): $(LTDLDEPS)
 moduleflags = -module -avoid-version -export-symbols-regex _LTX_
 
 engine_GOBS = src/engine/palette.gob src/engine/texture.gob \
-       src/engine/music.gob src/engine/sound.gob
+       src/engine/music.gob src/engine/sound.gob src/engine/mesh.gob
 
 MAINTAINERCLEANFILES += $(engine_GOBS:.gob=.gobstamp) \
        $(engine_GOBS:.gob=.c) $(engine_GOBS:.gob=.h)
@@ -108,8 +109,12 @@ GOB_V_0 = @printf '  %$(DX_ALIGN_V)s %s\n' 'GOB     ' $<;
 # this rule has to make some assumptions about the source tree layout.
 .gob.gobstamp:
 if HAVE_GOB2_DYN
-       $(GOB_V) $(GOB2) -o src --file-sep=/ --no-private-header $<
-       $(AM_V_at) touch $@
+       $(AM_V_at) touch $@.tmp
+       $(GOB_V) od='$(@D)'; case $$od in \
+         src/*) od=src ;; \
+         */src/*) od=$${od%/src/*}/src ;; \
+         esac; $(GOB2) -o "$$od" --file-sep=/ --no-private-header $<
+       $(AM_V_at) mv -f $@.tmp $@
 else
 if HAVE_GOB2
        @echo "ERROR: *** $(GOB2) does not support dynamic types." 1>&2