Makefile

Fri, 28 Dec 2012 15:44:28 +0100

author
Mike Becker <universe@uap-core.de>
date
Fri, 28 Dec 2012 15:44:28 +0100
changeset 34
fa9bda32de17
parent 32
51d6e45a7592
child 35
35120de6ee53
permissions
-rw-r--r--

moved src files to src subdirectory and added licence text

     1 #
     2 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. 
     3 #
     4 # Copyright 2011 Mike Becker. All rights reserved.
     5 # 
     6 # Redistribution and use in source and binary forms, with or without
     7 # modification, are permitted provided that the following conditions are met:
     8 # 
     9 # 1. Redistributions of source code must retain the above copyright
    10 # notice, this list of conditions and the following disclaimer.
    11 # 
    12 # 2. Redistributions in binary form must reproduce the above copyright
    13 # notice, this list of conditions and the following disclaimer in the
    14 # documentation and/or other materials provided with the distribution.
    15 # 
    16 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    17 # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    18 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    19 # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    20 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    21 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
    22 # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
    23 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    24 # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    25 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
    26 #
    27 # available configurations:
    28 #   gcc (default)    (will use libc regex implicitly)
    29 #   mingw            (will use libregex as static lib)
    30 #
    31 # debug configurations:
    32 #   gcc-debug
    33 #   mingw-debug
    34 #
    36 #ifndef CONF
    37 CONF = gcc
    38 #endif
    40 VERSION_PREFIX=1.0.
    41 SRCDIR=src/
    42 BUILDDIR=build/
    43 OBJ = $(shell ls ${SRCDIR} | grep '\.c' | sed 's/^\([^.]*\)\.c$$/${BUILDDIR:/=\/}\1.o/g' | tr '\n' ' ')
    44 BIN = ${BUILDDIR}cline
    46 include ${CONF}.mk
    48 .PHONY: setup run-compile teardown
    50 all: setup run-compile teardown
    53 run-compile:
    54 	-${MAKE} compile
    56 compile: ${OBJ}
    57 	${LD} -o ${BIN} ${OBJ} ${LDFLAGS}
    59 setup: ${BUILDDIR}
    60 	rm -f ${BUILDDIR}cline.o
    61 	mv ${SRCDIR}cline.h ${SRCDIR}cline.src
    62 	cat ${SRCDIR}cline.src | sed "s/VERSION.*/VERSION=\"${VERSION_PREFIX}$(shell hg identify -n) ($(shell hg identify -i))\";/g" > ${SRCDIR}cline.h
    64 ${BUILDDIR}:
    65 	mkdir ${BUILDDIR}
    67 teardown:
    68 	rm -f ${SRCDIR}cline.h
    69 	mv ${SRCDIR}cline.src ${SRCDIR}cline.h
    71 ${BUILDDIR}%.o: ${SRCDIR}%.c
    72 	${CC} ${CFLAGS} -c -o ${BUILDDIR}$*.o $<
    74 clean:
    75 	rm -f ${BUILDDIR}*.o

mercurial