unix/dualinit

Makefile in master
Repositories | Summary | Log | Files | LICENSE

Makefile (1000B) download


 1SOURCE_PATH    := src
 2OBJECT_PATH    := dist
 3BIN_PATH       := bin
 4EXECUTABLE     := init
 5EXEC_SRC_PATH  := src/exec
 6
 7CC             := gcc
 8CFLAGS         := -O2 -Wall -Wextra -Iincl
 9LDFLAGS        := -static
10
11EXEC_SRC_FILES := $(wildcard $(EXEC_SRC_PATH)/*.c)
12EXEC_FILES     := $(patsubst $(EXEC_SRC_PATH)/%.c,$(BIN_PATH)/%,$(EXEC_SRC_FILES))
13
14SOURCE_FILES   := $(wildcard $(SOURCE_PATH)/*.c)
15OBJECT_FILES   := $(patsubst $(SOURCE_PATH)/%.c,$(OBJECT_PATH)/%.o,$(SOURCE_FILES))
16
17.PRECIOUS: $(OBJECT_PATH)/%.o
18
19all: compile_flags.txt $(EXEC_FILES)
20
21clean:
22	rm -rf $(BIN_PATH) $(OBJECT_PATH)
23
24$(BIN_PATH) $(OBJECT_PATH):
25	mkdir -p $@
26
27$(OBJECT_PATH)/%.o: $(SOURCE_PATH)/%.c Makefile $(HEADER_FILES) | $(OBJECT_PATH)
28	$(CC) -o $@ -c $(CFLAGS) $<
29
30$(BIN_PATH)/%: $(EXEC_SRC_PATH)/%.c $(OBJECT_FILES) $(HEADER_FILES) | $(BIN_PATH)
31	$(CC) -o $@ $(CFLAGS) $< $(OBJECT_FILES) $(LDFLAGS) $(LDFLAGS_$(patsubst $(BIN_PATH)/%,%,$@))
32
33compile_flags.txt: Makefile
34	echo $(CFLAGS) | tr " " "\n" > compile_flags.txt