TP 13 exo1: Finish the buildsystem and the directories structure
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Thu, 9 Mar 2017 19:04:26 +0000 (20:04 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Thu, 9 Mar 2017 19:04:26 +0000 (20:04 +0100)
Add include guards to each header file

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
TP_13/exo1/Makefile
TP_13/exo1/lib/array.h
TP_13/exo1/lib/io.h
TP_13/exo1/lib/macros.h [new file with mode: 0644]
TP_13/exo1/lib/sort.h
TP_13/exo1/src/exo1.c

index 830835782ec244e8cf50fd31445bce29eea3f149..65b7fdc23894fa3e45df161cb73fe902c286175a 100644 (file)
@@ -43,6 +43,7 @@ STRIP_FLAG = -s
 OPTI_FLAG = -O3
 endif
 
+# Puting header files in the source directory is not the purpose of this INCLUDES variable
 INCLUDES := $(INCLUDES) -I$(SRC_PATH) -I$(LIBRARY_PATH)
 CFLAGS := $(CFLAGS) $(WARN_FLAGS) $(STD_FLAG) $(OPTI_FLAG) $(DEBUG_FLAG) $(INCLUDES)
 LIBCFLAGS := -fPIC $(CFLAGS)
@@ -84,10 +85,6 @@ $(BINARY_NAME).static: $(OBJS) $(LIBRARY_PATH)/$(LIBRARY_NAME).a
        @echo "[LD ] $@"
        @$(LD) $(CFLAGS) $(STATICLIBLDFLAGS) $^ $(LDLIBS) -o $@
 
-#$(BINARY_NAME).staticlocal: $(OBJS) $(LIBRARY_PATH)/$(LIBRARY_NAME).a
-#      @echo "[LD ] $@"
-#      @$(LD) $(CFLAGS) $(LDFLAGS) $^ $(LDLIBS) -o $@
-
 $(BINARY_NAME).dynamic: $(OBJS) $(LIBRARY_PATH)/$(LIBRARY_NAME).so
        @echo "[LD ] $@"
        @$(LD) $(CFLAGS) $(LDFLAGS) $^ $(LDLIBS) -o $@
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..1f0be270c59239df881644dce69aa91f3ae5235c 100644 (file)
@@ -0,0 +1,5 @@
+#ifndef ARRAY_H
+#define ARRAY_H
+
+
+#endif /* ARRAY_H */
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..56eef2376c3ac654220a76fdbf35eddbeffd3adb 100644 (file)
@@ -0,0 +1,6 @@
+#ifndef IO_H
+#define IO_H
+
+
+
+#endif /* IO_H */
diff --git a/TP_13/exo1/lib/macros.h b/TP_13/exo1/lib/macros.h
new file mode 100644 (file)
index 0000000..ab500df
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * =====================================================================================
+ *
+ *       Filename:  macros.h
+ *
+ *    Description:  
+ *
+ *        Version:  1.0
+ *        Created:  09/03/2017 15:28:46
+ *       Revision:  none
+ *       Compiler:  gcc
+ *
+ *         Author:  Jerome Benoit (fraggle), jerome.benoit@piment-noir.org
+ *   Organization:  Piment Noir
+ *
+ * =====================================================================================
+ */
+
+#ifndef MACROS_H
+#define MACROS_H
+
+/* definition to expand macro then apply to pragma message */
+#define VALUE_TO_STRING(x) #x
+#define VALUE(x) VALUE_TO_STRING(x)
+#define VAR_NAME_VALUE(var) #var "=" VALUE(var)
+
+#define ARRAY_SIZE(arr) ({typeof (arr) arr ## _is_a_pointer __attribute__((unused)) = {}; \
+                          sizeof(arr) / sizeof(arr[0]);})
+
+#endif /*  MACROS_H */
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..86fd5c48d6803fe1b0b1c1d778d58f4bb745c467 100644 (file)
@@ -0,0 +1,5 @@
+#ifndef SORT_H
+#define SORT_H
+
+
+#endif /* SORT_H */
index 06f5f8d66140d669cb3a97bedd47405c4593e2f5..68b30087ae455f71e44db62e49cbb62f8161bac1 100644 (file)
@@ -1,5 +1,7 @@
 #include <stdio.h>
 
+#include "macros.h"
+
 int main() {
     printf("Hello world\n");