[gpm] [PATCH 1/6] fix building out of tree, part1
Bernhard Fischer
rep.dot.nop@gmail.com
Wed Apr 30 14:21:24 CEST 2008
Signed-off-by: aldot <rep.dot.nop@gmail.com>
---
configure.ac | 2 +-
scripts/generate_drivers_makefile.sh | 2 +-
src/Makefile.in | 32 +++++++++++++++++++++-----------
3 files changed, 23 insertions(+), 13 deletions(-)
diff --git a/configure.ac b/configure.ac
index 3ecf063..0801e44 100644
--- a/configure.ac
+++ b/configure.ac
@@ -132,7 +132,7 @@ AC_SUBST(CURSES_OBJS)
AC_SUBST(SHARED_LIBS)
AC_SUBST(lispdir)
-CPPFLAGS='-I$(srcdir)/headers -I$(srcdir)/../gpm2/include $(DEFS) -include headers/config.h -Wall -DSYSCONFDIR="\"$(sysconfdir)\"" -DSBINDIR="\"$(sbindir)\""'
+CPPFLAGS='$(DEFS) -DSYSCONFDIR="\"$(sysconfdir)\"" -DSBINDIR="\"$(sbindir)\"" -include headers/config.h -I$(srcdir)/headers -I$(srcdir)/../gpm2/include -I$(builddir)/headers '
LDFLAGS='-L$(srcdir)'
dnl AC_DEFINE_UNQUOTED(SYSCONFDIR,"$sysconfdir")
diff --git a/scripts/generate_drivers_makefile.sh b/scripts/generate_drivers_makefile.sh
index a6d0336..b65acef 100755
--- a/scripts/generate_drivers_makefile.sh
+++ b/scripts/generate_drivers_makefile.sh
@@ -32,7 +32,7 @@ GDRIVERS = \\
eof
(
- cd $1
+ cd $dir
ls drivers/*/*.c
) | sed 's/$/ \\/'
diff --git a/src/Makefile.in b/src/Makefile.in
index bccd180..1ecd8a9 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -7,6 +7,8 @@
#
srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+builddir = @builddir@
top_builddir = ..
## INCLUDES
@@ -60,7 +62,10 @@ PROG = $(POBJ:.o=)
SRCS = $(GSRC) $(LSRC) $(PSRC)
SRCSP= $(SRCS:.c=.P) lib/libcurses.P
-OBJECTS = $(SRCS:.c=.o)
+OBJECTS = $(GOBJ) $(filter-out @CURSES_OBJS@,$(LOBJ)) $(POBJ)
+# All objects depend on their respective sources
+$(OBJECTS) @CURSES_OBJS@: %.o: $(srcdir)/%.c
+$(PICS): %.lo: $(srcdir)/%.c
DEFS = @DEFS@
@@ -80,20 +85,26 @@ gpm: $(GOBJ)
# user-overridable flags, but it's also all the implicit rule looks at.
# the prog rules are not very clean...
-prog/%.o: prog/%.c
- $(CC) -Iheaders @CPPFLAGS@ $(CPPFLAGS) @CFLAGS@ $(CFLAGS) -c -o $@ $<
+prog/%.o: $(srcdir)/prog/%.c
+ @@MKDIR_P@ $(@D)
+ $(CC) @CPPFLAGS@ $(CPPFLAGS) @CFLAGS@ $(CFLAGS) -c -o $@ $<
prog/%: prog/%.o
$(CC) @LDFLAGS@ $(LDFLAGS) -o $@ $^ @LIBS@ $(LIBS)
-%.o: %.c
+
+#Make sure that our output-dir exists. autotools would have done this
+#for us for SUBDIRS, but we do not use them here (why, btw?)
+%.o:
+ @@MKDIR_P@ $(@D)
$(CC) -MD @CPPFLAGS@ $(CPPFLAGS) @CFLAGS@ $(CFLAGS) -c -o $@ $<
@cp $*.d $*.P; \
sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
-e '/^$$/ d' -e 's/$$/ :/' < $*.d >> $*.P; \
#rm -f $*.d
-%.lo: %.c
+%.lo:
+ @@MKDIR_P@ $(@D)
$(CC) @CPPFLAGS@ $(CPPFLAGS) @PICFLAGS@ @CFLAGS@ $(CFLAGS) -c -o $@ $<
%: %.o
@@ -101,16 +112,15 @@ prog/%: prog/%.o
### GENERATED INCLUDES
-# FIXME: add absolute path of source files below
$(OBJECTS): headers/drivers.h
-headers/drivers.h: $(GDRIVERS) ../scripts/generate_drivers_header.sh
- ../scripts/generate_drivers_header.sh . > $@
+headers/drivers.h: $(addprefix $(srcdir)/,$(GDRIVERS)) $(top_srcdir)/scripts/generate_drivers_header.sh
+ $(top_srcdir)/scripts/generate_drivers_header.sh $(srcdir) > $@
#-include $(SRCSP)
Makefile.drivers.generated:
- ../scripts/generate_drivers_makefile.sh . > $@
+ $(top_srcdir)/scripts/generate_drivers_makefile.sh $(srcdir) > $@
### INSTALL
check: all
@@ -160,8 +170,8 @@ prog/gpm-root: prog/gpm-root.c lib/libgpm.so
$(CC) -I. @CPPFLAGS@ $(CPPFLAGS) @CFLAGS@ $(CFLAGS) -c -o $@.o $<
$(CC) @LDFLAGS@ $(LDFLAGS) -o $@ $@.o @LIBS@ $(LIBS) lib/libgpm.so
-prog/mouse-test: prog/mouse-test.o mice.o prog/open_console.o \
- $(GCOMMON:.c=.o) $(GDRIVERS:.c=.o)
+prog/mouse-test: prog/mouse-test.o mice.o prog/open_console.o \
+ $(GSRC:.c=.o)
$(CC) @LDFLAGS@ $(LDFLAGS) -o $@ $^ @LIBS@ $(LIBS) -lm
$(PROG): lib/libgpm.so
--
1.5.5
More information about the gpm
mailing list