ディレクトリ構成
-APP | +--src | | | +--*.c | +--include | | | +--*.h | +--Makefile | +--app
Makefile
APPNAME=app
###########################################################################
# Which compiler
CC=gcc
FC=g77
###########################################################################
# Where to install
INSTDIR=~/
###########################################################################
# Where are include files kept
INCLUDE=-I./include -I/usr/include/libxml2
###########################################################################
# Compile option
CFLAGS=-g -Wall
#CFLAGS=-g
SRC:=$(wildcard ./src/*.c)
OBJ:=$(SRC:.c=.o)
###########################################################################
# Control Script
all: clean compile
clean:
rm -f ./$(APPNAME)
rm -f ./src/*.o
###########################################################################
# Body
compile: $(OBJ)
$(CC) $(OBJ) -o $(APPNAME)
# .so を作るとき
# $(CC) $(OBJ) -shared -o $(APPNAME)
# ./lib にある libmath.a にリンクするとき
# $(CC) $(OBJ) -L./lib -lmath -o $(APPNAME)
%.o : %.c
$(CC) $(INCLUDE) $(CFLAGS) -c $< -o $@
まさか、21世紀になって Makefile を書くことになるとは思わなかった