Makefile

changeset 28
72a98cbcb9f1
parent 23
778388400f7b
child 32
51d6e45a7592
--- a/Makefile	Thu Jan 26 15:55:52 2012 +0100
+++ b/Makefile	Thu Feb 02 14:17:35 2012 +0100
@@ -1,8 +1,43 @@
-CC = gcc
-CARG = -Wall -std=gnu99 -O
-BUILDDIR = build/
-OBJ = $(shell ls | grep '\.c' | sed 's/^\([^.]*\)\.c$$/${BUILDDIR:/=\/}\1.o/g' | tr '\n' ' ')
-BIN = ${BUILDDIR}cline
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. 
+#
+# Copyright 2011 Mike Becker. All rights reserved.
+# 
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# 
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 
+# 2. 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.
+# 
+# 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 HOLDER 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. 
+#
+# available configurations:
+#   gcc (default)    (will use libc regex implicitly)
+#   mingw            (will use libregex as static lib)
+#
+# debug configurations:
+#   gcc-debug
+#   mingw-debug
+#
+
+#ifndef CONF
+CONF = gcc
+#endif
+
+include ${CONF}.mk
 
 .PHONY: setup run-compile teardown
 
@@ -13,11 +48,11 @@
 	-${MAKE} compile
 
 compile: ${OBJ}
-	${CC} -o ${BIN} ${OBJ}
+	${LD} -o ${BIN} ${OBJ} ${LDFLAGS}
 
 setup:
 	mkdir -p ${BUILDDIR}
-	rm -f build/cline.o
+	rm -f ${BUILDDIR}cline.o
 	mv cline.h cline.src
 	cat cline.src | sed "s/VERSION.*/VERSION=\"$(shell hg identify -n) ($(shell hg identify -i))\";/g" > cline.h
 	
@@ -26,8 +61,8 @@
 	mv cline.src cline.h
 
 ${BUILDDIR}%.o: %.c
-	${CC} ${CARG} -c -o ${BUILDDIR}$*.o $<
+	${CC} ${CFLAGS} -c -o ${BUILDDIR}$*.o $<
 
 clean:
-	rm -f build/*
+	rm -f ${BUILDDIR}*.o
 	
\ No newline at end of file

mercurial