From b0559080800fc511dcbf2c328fbd018d43817b33 Mon Sep 17 00:00:00 2001 From: David Delassus Date: Tue, 9 Nov 2010 20:01:14 +0100 Subject: [PATCH] Add out-of-tree building (make O=/path -C /path/to/wmfs) --- Makefile | 13 +++++++++---- config.mk | 1 + src/config.h.in | 45 --------------------------------------------- 3 files changed, 10 insertions(+), 49 deletions(-) delete mode 100644 src/config.h.in diff --git a/Makefile b/Makefile index c30ee42..dc2cc72 100644 --- a/Makefile +++ b/Makefile @@ -25,7 +25,7 @@ src/util.c \ src/viwmfs.c \ src/wmfs.c -OBJ = ${SRC:.c=.o} +OBJ = ${patsubst %.c,${O}/%.o,${SRC}} ifneq ($(findstring xrandr, ${LIBS}),) CFLAGS+= -DHAVE_XRANDR @@ -39,9 +39,10 @@ ifneq ($(findstring imlib2, ${LIBS}),) CFLAGS+= -DHAVE_IMLIB2 endif -all: options wmfs +all: options ${O}/wmfs -%.o: %.c config.mk +${O}/%.o: %.c config.mk + @if [ ! -d `dirname ${O}/$<` ]; then mkdir -p `dirname ${O}/$<`; fi @echo CC $< @${CC} -c ${CFLAGS} $< -o $@ @@ -49,8 +50,11 @@ options: @echo wmfs compile with ${LIBS} @echo - CFLAGS ${CFLAGS} @echo - LDFLAGS ${LDFLAGS} + @echo - OUTPUT ${O} -wmfs: ${OBJ} config.mk + @if [ ! -d ${O} ]; then mkdir -p ${O}; fi + +${O}/wmfs: ${OBJ} config.mk src/structs.h src/wmfs.h src/parse/parse.h @echo CC -o $@ @${CC} -o $@ ${OBJ} ${LDFLAGS} @@ -77,3 +81,4 @@ uninstall: .PHONY: all clean install uninstall + diff --git a/config.mk b/config.mk index 38c08ea..e17e681 100644 --- a/config.mk +++ b/config.mk @@ -17,3 +17,4 @@ LDFLAGS= $(shell pkg-config --libs ${LIBS}) -lpthread CFLAGS+= -DWMFS_VERSION=\"${VERSION}\" CC = cc +O = __build__ diff --git a/src/config.h.in b/src/config.h.in deleted file mode 100644 index 77d88bd..0000000 --- a/src/config.h.in +++ /dev/null @@ -1,45 +0,0 @@ -/* -* config.h -* Copyright © 2008 Martin Duquesnoy -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are -* met: -* -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* * Redistributions in binary form must reproduce the above -* copyright notice, this list of conditions and the following disclaimer -* in the documentation and/or other materials provided with the -* distribution. -* * Neither the name of the nor the names of its -* contributors may be used to endorse or promote products derived from -* this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "wmfs.h" - -#define WMFS_VERSION "@VERSION@" -#define WMFS_COMPILE_MACHINE "@CMAKE_SYSTEM_PROCESSOR@" -#define WMFS_COMPILE_BY "@USERNAME@" -#define WMFS_COMPILE_FLAGS "@CMAKE_C_FLAGS@" -#define WMFS_LINKED_LIBS "@CMAKE_LINK_LIBRARIES@" -#define XDG_CONFIG_DIR "@CMAKE_XDGCONFDIR@" - -#endif /* CONFIG_H */