Created
April 26, 2016 08:42
-
-
Save lilongen/ee515a145431a194e72a6345f5a507c6 to your computer and use it in GitHub Desktop.
C Generic Makefile
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
###################################### | |
# | |
# Generic makefile | |
# | |
# by George Foot | |
# email: george.foot@merton.ox.ac.uk | |
# | |
# Copyright (c) 1997 George Foot | |
# All rights reserved. | |
# | |
# No warranty, no liability; | |
# you use this at your own risk. | |
# | |
# You are free to modify and | |
# distribute this without giving | |
# credit to the original author. | |
# | |
###################################### | |
### Customising | |
# | |
# Adjust the following if necessary; EXECUTABLE is the target | |
# executable's filename, and LIBS is a list of libraries to link in | |
# (e.g. alleg, stdcx, iostr, etc). You can override these on make's | |
# command line of course, if you prefer to do it that way. | |
# | |
# | |
EXECUTABLE := set_test.exe | |
LIBS := alleg | |
# Now alter any implicit rules' variables if you like, e.g.: | |
# | |
CC = gcc | |
CFLAGS := -Wall -O -g | |
CXXFLAGS := $(CFLAGS) | |
RM_F := rm -f | |
# You shouldn't need to change anything below this point. | |
# | |
SOURCE := $(wildcard *.c) $(wildcard *.cc) | |
OBJS := $(patsubst %.c,%.o,$(patsubst %.cc,%.o,$(SOURCE))) | |
DEPS := $(patsubst %.o,%.d,$(OBJS)) | |
MISSING_DEPS := $(filter-out $(wildcard $(DEPS)),$(DEPS)) | |
MISSING_DEPS_SOURCES := $(wildcard $(patsubst %.d,%.c,$(MISSING_DEPS)) \ | |
$(patsubst %.d,%.cc,$(MISSING_DEPS))) | |
CPPFLAGS += -MD | |
.PHONY : everything deps objs clean veryclean rebuild | |
everything : $(EXECUTABLE) | |
deps : $(DEPS) | |
objs : $(OBJS) | |
clean : | |
@$(RM-F) *.o | |
@$(RM-F) *.d | |
veryclean: clean | |
@$(RM-F) $(EXECUTABLE) | |
rebuild: veryclean everything | |
ifneq ($(MISSING_DEPS),) | |
$(MISSING_DEPS) : | |
@$(RM-F) $(patsubst %.d,%.o,$@) | |
endif | |
-include $(DEPS) | |
$(EXECUTABLE) : $(OBJS) | |
gcc -o $(EXECUTABLE) $(OBJS) $(addprefix -l,$(LIBS)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment