onyx_online a révisé ce gist . Aller à la révision
1 file changed, 56 insertions
scaffold.sh(fichier créé)
@@ -0,0 +1,56 @@ | |||
1 | + | #!/usr/bin/env bash | |
2 | + | ||
3 | + | name=$1 | |
4 | + | ||
5 | + | if [ -d "$name" ]; then | |
6 | + | echo "program $name already exists" | |
7 | + | exit 1 | |
8 | + | fi | |
9 | + | ||
10 | + | mkdir -p "$name"/{src,include}/ | |
11 | + | touch "$name"/makefile | |
12 | + | ||
13 | + | cat <<EOT >> "$name"/makefile | |
14 | + | program = $name | |
15 | + | ||
16 | + | CC = gcc | |
17 | + | SRC_DIR := src | |
18 | + | OBJ_DIR := obj | |
19 | + | BIN_DIR := bin | |
20 | + | INCLUDES := -Iinclude | |
21 | + | ||
22 | + | EXE := \$(BIN_DIR)/\$(program).out | |
23 | + | SRC := \$(wildcard \$(SRC_DIR)/*.c) | |
24 | + | OBJ := \$(SRC:\$(SRC_DIR)/%.c=\$(OBJ_DIR)/%.o) | |
25 | + | ||
26 | + | CPPFLAGS := \$(INCLUDES) -MMD -MP | |
27 | + | CFLAGS = -O -Wall -W -pedantic -ansi -std=c99 | |
28 | + | LDFLAGS := -Llib | |
29 | + | LDLIBS := -lm | |
30 | + | ||
31 | + | .PHONY: all clean | |
32 | + | ||
33 | + | all: \$(EXE) | |
34 | + | ||
35 | + | \$(EXE): \$(OBJ) | \$(BIN_DIR) | |
36 | + | \$(CC) \$(LDFLAGS) \$^ \$(LDLIBS) -o \$@ | |
37 | + | ||
38 | + | \$(OBJ_DIR)/%.o: \$(SRC_DIR)/%.c | \$(OBJ_DIR) | |
39 | + | \$(CC) \$(CPPFLAGS) \$(CFLAGS) -c $< -o \$@ | |
40 | + | ||
41 | + | \$(BIN_DIR) \$(OBJ_DIR): | |
42 | + | @mkdir -p \$@ | |
43 | + | ||
44 | + | clean: | |
45 | + | @rm -rv \$(BIN_DIR) \$(OBJ_DIR) | |
46 | + | ||
47 | + | -include \$(OBJ:.o=.d) | |
48 | + | EOT | |
49 | + | ||
50 | + | cat <<EOT >> "$name"/src/"$name".c | |
51 | + | /******************************************************************************** | |
52 | + | C Programming (2nd ed.) A Modern Approach, by | |
53 | + | K. N. King | |
54 | + | ISBN: 9780393871845 | |
55 | + | ********************************************************************************/ | |
56 | + | EOT |
Plus récent
Plus ancien