simplifies Makefiles

Tue, 28 Aug 2018 14:03:09 +0200

author
Mike Becker <universe@uap-core.de>
date
Tue, 28 Aug 2018 14:03:09 +0200
changeset 58
7ba8a97a8b6e
parent 57
498d92449d6d
child 59
3fa1de896666

simplifies Makefiles

Makefile file | annotate | diff | comparison | revisions
src/Makefile file | annotate | diff | comparison | revisions
src/chess/Makefile file | annotate | diff | comparison | revisions
src/chess/conf.mk file | annotate | diff | comparison | revisions
     1.1 --- a/Makefile	Tue Aug 28 13:45:22 2018 +0200
     1.2 +++ b/Makefile	Tue Aug 28 14:03:09 2018 +0200
     1.3 @@ -28,17 +28,19 @@
     1.4  
     1.5  include conf.mk
     1.6  
     1.7 +ROOTDIR=$(shell pwd)
     1.8 +
     1.9  all: chess
    1.10 -	cd src; $(MAKE)
    1.11 +	cd src; $(MAKE) BUILDDIR=$(ROOTDIR)/build/release
    1.12  
    1.13  debug: chess-debug
    1.14 -	cd src; $(MAKE) debug
    1.15 +	cd src; $(MAKE) BUILDDIR=$(ROOTDIR)/build/debug CFLAGS="${CFLAGS_D}"
    1.16  
    1.17  chess:
    1.18 -	cd src/chess; $(MAKE) BUILDDIR=../../build CONFIG=../../conf.mk
    1.19 +	cd src/chess; $(MAKE) BUILDDIR=$(ROOTDIR)/build/release
    1.20  
    1.21  chess-debug:
    1.22 -	cd src/chess; $(MAKE) debug BUILDDIR=../../build CONFIG=../../conf.mk
    1.23 +	cd src/chess; $(MAKE) BUILDDIR=$(ROOTDIR)/build/debug CFLAGS="${CFLAGS_D}"
    1.24  	
    1.25  clean:
    1.26  	$(RM) $(RMFLAGS) build
     2.1 --- a/src/Makefile	Tue Aug 28 13:45:22 2018 +0200
     2.2 +++ b/src/Makefile	Tue Aug 28 14:03:09 2018 +0200
     2.3 @@ -36,26 +36,15 @@
     2.4  SRC += client.c
     2.5  SRC += game.c
     2.6  
     2.7 -OBJ = $(SRC:%.c=../build/release/%$(OBJ_EXT))
     2.8 -OBJ_D = $(SRC:%.c=../build/debug/%$(OBJ_EXT))
     2.9 +OBJ = $(SRC:%.c=$(BUILDDIR)/%$(OBJ_EXT))
    2.10  
    2.11 -all: ../build/release $(OBJ)
    2.12 -	$(LD) -o ../build/release/$(BIN) $(OBJ) \
    2.13 -	../build/release/chess$(LIB_EXT) $(LDFLAGS)
    2.14 +all: $(BUILDDIR) $(OBJ)
    2.15 +	$(LD) -o $(BUILDDIR)/$(BIN) $(OBJ) \
    2.16 +	$(BUILDDIR)/chess$(LIB_EXT) $(LDFLAGS)
    2.17  
    2.18 -debug: ../build/debug $(OBJ_D)
    2.19 -	$(LD) -o ../build/debug/$(BIN) $(OBJ_D) \
    2.20 -	../build/debug/chess$(LIB_EXT) $(LDFLAGS)	
    2.21 +$(BUILDDIR)/%$(OBJ_EXT): %.c
    2.22 +	$(CC) -o $@ $(CFLAGS) -c $<
    2.23 +	
    2.24 +$(BUILDDIR):
    2.25 +	$(MKDIR) $(MKDIRFLAGS) $(BUILDDIR)
    2.26  
    2.27 -../build/release/%$(OBJ_EXT): %.c
    2.28 -	$(CC) -o $@ $(CFLAGS) -c $<
    2.29 -
    2.30 -../build/debug/%$(OBJ_EXT): %.c
    2.31 -	$(CC) -o $@ $(CFLAGS_D) -c $<
    2.32 -	
    2.33 -../build/release:
    2.34 -	$(MKDIR) $(MKDIRFLAGS) ../build/release
    2.35 -	
    2.36 -../build/debug:
    2.37 -	$(MKDIR) $(MKDIRFLAGS) ../build/debug
    2.38 -
     3.1 --- a/src/chess/Makefile	Tue Aug 28 13:45:22 2018 +0200
     3.2 +++ b/src/chess/Makefile	Tue Aug 28 14:03:09 2018 +0200
     3.3 @@ -26,10 +26,7 @@
     3.4  # POSSIBILITY OF SUCH DAMAGE.
     3.5  #
     3.6  
     3.7 -BUILDDIR = ../build
     3.8 -CONFIG = conf.mk
     3.9 -
    3.10 -include $(CONFIG)
    3.11 +include ../../conf.mk
    3.12  
    3.13  SRC += pawn.c
    3.14  SRC += rook.c
    3.15 @@ -40,29 +37,14 @@
    3.16  SRC += rules.c
    3.17  SRC += pgn.c
    3.18  
    3.19 -OBJ = $(SRC:%.c=$(BUILDDIR)/release/%$(OBJ_EXT))
    3.20 -OBJ_D = $(SRC:%.c=$(BUILDDIR)/debug/%$(OBJ_EXT))
    3.21 +OBJ = $(SRC:%.c=$(BUILDDIR)/%$(OBJ_EXT))
    3.22  
    3.23 -all: $(BUILDDIR)/release $(OBJ)
    3.24 -	$(AR) $(ARFLAGS) $(BUILDDIR)/release/chess$(LIB_EXT) $(OBJ)
    3.25 +all: $(BUILDDIR) $(OBJ)
    3.26 +	$(AR) $(ARFLAGS) $(BUILDDIR)/chess$(LIB_EXT) $(OBJ)
    3.27  
    3.28 -debug: $(BUILDDIR)/debug $(OBJ_D)
    3.29 -	$(AR) $(ARFLAGS) $(BUILDDIR)/debug/chess$(LIB_EXT) $(OBJ_D)	
    3.30 -
    3.31 -$(BUILDDIR)/release/%$(OBJ_EXT): %.c
    3.32 +$(BUILDDIR)/%$(OBJ_EXT): %.c
    3.33  	$(CC) -o $@ $(CFLAGS) -c $<
    3.34  	
    3.35 -$(BUILDDIR)/debug/%$(OBJ_EXT): %.c
    3.36 -	$(CC) -o $@ $(CFLAGS_D) -c $<
    3.37 -
    3.38  $(BUILDDIR):
    3.39  	$(MKDIR) $(MKDIRFLAGS) $(BUILDDIR)
    3.40 -	
    3.41 -clear:
    3.42 -	$(RM) $(RMFLAGS) $(BUILDDIR)
    3.43 -	
    3.44 - $(BUILDDIR)/release:
    3.45 -	$(MKDIR) $(MKDIRFLAGS)  $(BUILDDIR)/release
    3.46 -	
    3.47 - $(BUILDDIR)/debug:
    3.48 -	$(MKDIR) $(MKDIRFLAGS)  $(BUILDDIR)/debug
    3.49 +	
    3.50 \ No newline at end of file
     4.1 --- a/src/chess/conf.mk	Tue Aug 28 13:45:22 2018 +0200
     4.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.3 @@ -1,41 +0,0 @@
     4.4 -#
     4.5 -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
     4.6 -#
     4.7 -# Copyright 2016 Mike Becker. All rights reserved.
     4.8 -#
     4.9 -# Redistribution and use in source and binary forms, with or without
    4.10 -# modification, are permitted provided that the following conditions are met:
    4.11 -#
    4.12 -#   1. Redistributions of source code must retain the above copyright
    4.13 -#      notice, this list of conditions and the following disclaimer.
    4.14 -#
    4.15 -#   2. Redistributions in binary form must reproduce the above copyright
    4.16 -#      notice, this list of conditions and the following disclaimer in the
    4.17 -#      documentation and/or other materials provided with the distribution.
    4.18 -#
    4.19 -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    4.20 -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    4.21 -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    4.22 -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
    4.23 -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    4.24 -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    4.25 -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    4.26 -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    4.27 -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    4.28 -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    4.29 -# POSSIBILITY OF SUCH DAMAGE.
    4.30 -#
    4.31 -
    4.32 -MKDIR   = mkdir
    4.33 -RM      = rm
    4.34 -AR      = ar
    4.35 -
    4.36 -CC         = gcc
    4.37 -CFLAGS_D   = -g -std=gnu99 -Wall -pedantic
    4.38 -CFLAGS     = -O2 -std=gnu99
    4.39 -ARFLAGS    = -r
    4.40 -MKDIRFLAGS = -p
    4.41 -RMFLAGS    = -f -R
    4.42 -
    4.43 -OBJ_EXT = .o
    4.44 -LIB_EXT = .a

mercurial