# HG changeset patch # User Mike Becker # Date 1535457789 -7200 # Node ID 7ba8a97a8b6e28e454c890cefc523b5fbfced67d # Parent 498d92449d6d542141eaea35bbe8687ad3a671db simplifies Makefiles diff -r 498d92449d6d -r 7ba8a97a8b6e Makefile --- a/Makefile Tue Aug 28 13:45:22 2018 +0200 +++ b/Makefile Tue Aug 28 14:03:09 2018 +0200 @@ -28,17 +28,19 @@ include conf.mk +ROOTDIR=$(shell pwd) + all: chess - cd src; $(MAKE) + cd src; $(MAKE) BUILDDIR=$(ROOTDIR)/build/release debug: chess-debug - cd src; $(MAKE) debug + cd src; $(MAKE) BUILDDIR=$(ROOTDIR)/build/debug CFLAGS="${CFLAGS_D}" chess: - cd src/chess; $(MAKE) BUILDDIR=../../build CONFIG=../../conf.mk + cd src/chess; $(MAKE) BUILDDIR=$(ROOTDIR)/build/release chess-debug: - cd src/chess; $(MAKE) debug BUILDDIR=../../build CONFIG=../../conf.mk + cd src/chess; $(MAKE) BUILDDIR=$(ROOTDIR)/build/debug CFLAGS="${CFLAGS_D}" clean: $(RM) $(RMFLAGS) build diff -r 498d92449d6d -r 7ba8a97a8b6e src/Makefile --- a/src/Makefile Tue Aug 28 13:45:22 2018 +0200 +++ b/src/Makefile Tue Aug 28 14:03:09 2018 +0200 @@ -36,26 +36,15 @@ SRC += client.c SRC += game.c -OBJ = $(SRC:%.c=../build/release/%$(OBJ_EXT)) -OBJ_D = $(SRC:%.c=../build/debug/%$(OBJ_EXT)) +OBJ = $(SRC:%.c=$(BUILDDIR)/%$(OBJ_EXT)) -all: ../build/release $(OBJ) - $(LD) -o ../build/release/$(BIN) $(OBJ) \ - ../build/release/chess$(LIB_EXT) $(LDFLAGS) +all: $(BUILDDIR) $(OBJ) + $(LD) -o $(BUILDDIR)/$(BIN) $(OBJ) \ + $(BUILDDIR)/chess$(LIB_EXT) $(LDFLAGS) -debug: ../build/debug $(OBJ_D) - $(LD) -o ../build/debug/$(BIN) $(OBJ_D) \ - ../build/debug/chess$(LIB_EXT) $(LDFLAGS) +$(BUILDDIR)/%$(OBJ_EXT): %.c + $(CC) -o $@ $(CFLAGS) -c $< + +$(BUILDDIR): + $(MKDIR) $(MKDIRFLAGS) $(BUILDDIR) -../build/release/%$(OBJ_EXT): %.c - $(CC) -o $@ $(CFLAGS) -c $< - -../build/debug/%$(OBJ_EXT): %.c - $(CC) -o $@ $(CFLAGS_D) -c $< - -../build/release: - $(MKDIR) $(MKDIRFLAGS) ../build/release - -../build/debug: - $(MKDIR) $(MKDIRFLAGS) ../build/debug - diff -r 498d92449d6d -r 7ba8a97a8b6e src/chess/Makefile --- a/src/chess/Makefile Tue Aug 28 13:45:22 2018 +0200 +++ b/src/chess/Makefile Tue Aug 28 14:03:09 2018 +0200 @@ -26,10 +26,7 @@ # POSSIBILITY OF SUCH DAMAGE. # -BUILDDIR = ../build -CONFIG = conf.mk - -include $(CONFIG) +include ../../conf.mk SRC += pawn.c SRC += rook.c @@ -40,29 +37,14 @@ SRC += rules.c SRC += pgn.c -OBJ = $(SRC:%.c=$(BUILDDIR)/release/%$(OBJ_EXT)) -OBJ_D = $(SRC:%.c=$(BUILDDIR)/debug/%$(OBJ_EXT)) +OBJ = $(SRC:%.c=$(BUILDDIR)/%$(OBJ_EXT)) -all: $(BUILDDIR)/release $(OBJ) - $(AR) $(ARFLAGS) $(BUILDDIR)/release/chess$(LIB_EXT) $(OBJ) +all: $(BUILDDIR) $(OBJ) + $(AR) $(ARFLAGS) $(BUILDDIR)/chess$(LIB_EXT) $(OBJ) -debug: $(BUILDDIR)/debug $(OBJ_D) - $(AR) $(ARFLAGS) $(BUILDDIR)/debug/chess$(LIB_EXT) $(OBJ_D) - -$(BUILDDIR)/release/%$(OBJ_EXT): %.c +$(BUILDDIR)/%$(OBJ_EXT): %.c $(CC) -o $@ $(CFLAGS) -c $< -$(BUILDDIR)/debug/%$(OBJ_EXT): %.c - $(CC) -o $@ $(CFLAGS_D) -c $< - $(BUILDDIR): $(MKDIR) $(MKDIRFLAGS) $(BUILDDIR) - -clear: - $(RM) $(RMFLAGS) $(BUILDDIR) - - $(BUILDDIR)/release: - $(MKDIR) $(MKDIRFLAGS) $(BUILDDIR)/release - - $(BUILDDIR)/debug: - $(MKDIR) $(MKDIRFLAGS) $(BUILDDIR)/debug + \ No newline at end of file diff -r 498d92449d6d -r 7ba8a97a8b6e src/chess/conf.mk --- a/src/chess/conf.mk Tue Aug 28 13:45:22 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. -# -# Copyright 2016 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. -# - -MKDIR = mkdir -RM = rm -AR = ar - -CC = gcc -CFLAGS_D = -g -std=gnu99 -Wall -pedantic -CFLAGS = -O2 -std=gnu99 -ARFLAGS = -r -MKDIRFLAGS = -p -RMFLAGS = -f -R - -OBJ_EXT = .o -LIB_EXT = .a