aboutsummaryrefslogtreecommitdiff
path: root/.vim/c-support/codesnippets/Makefile
diff options
context:
space:
mode:
Diffstat (limited to '.vim/c-support/codesnippets/Makefile')
-rw-r--r--.vim/c-support/codesnippets/Makefile178
1 files changed, 178 insertions, 0 deletions
diff --git a/.vim/c-support/codesnippets/Makefile b/.vim/c-support/codesnippets/Makefile
new file mode 100644
index 0000000..2208944
--- /dev/null
+++ b/.vim/c-support/codesnippets/Makefile
@@ -0,0 +1,178 @@
+#=======================================================================================
+#
+# Filename: Makefile
+# Description:
+#
+# Usage: make (generate executable )
+# make clean (remove objects, executable, prerequisits )
+# make tarball (generate compressed archive )
+# make zip (generate compressed archive )
+#
+# Version: 1.0
+# Created:
+# Revision: ---
+#
+# Author:
+# Company:
+# Email:
+#
+# Notes: C extension : c
+# C++ extensions : cc cpp C
+# C and C++ sources can be mixed.
+# Prerequisites are generated automatically; makedepend is not
+# needed (see documentation for GNU make Version 3.80, July 2002,
+# section 4.13). The utility sed is used.
+#
+#============================================== makefile template version 1.6 ==========
+
+# ------------ name of the executable ------------------------------------------------
+EXECUTABLE = main
+
+# ------------ list of all source files ----------------------------------------------
+SOURCES = main.c
+
+# ------------ compiler --------------------------------------------------------------
+CC = gcc
+CXX = g++
+
+# ------------ compiler flags --------------------------------------------------------
+CFLAGS = -Wall -O0 -g # Do not optimize. Produce debugging information.
+
+# ------------ linker-Flags ----------------------------------------------------------
+LFLAGS = -g
+
+# ------------ additional system include directories ---------------------------------
+GLOBAL_INC_DIR =
+
+# ------------ private include directories -------------------------------------------
+LOCAL_INC_DIR = $(HOME)/include
+
+# ------------ system libraries (e.g. -lm ) -----------------------------------------
+SYS_LIBS = -lm
+
+# ------------ additional system library directories ---------------------------------
+GLOBAL_LIB_DIR =
+
+# ------------ additional system libraries -------------------------------------------
+GLOBAL_LIBS =
+
+# ------------ private library directories -------------------------------------------
+LOCAL_LIB_DIR = $(HOME)/lib
+
+# ------------ private libraries (e.g. libxyz.a ) -----------------------------------
+LOCAL_LIBS =
+
+# ------------ archive generation -----------------------------------------------------
+TARBALL_EXCLUDE = *.{o,gz,zip}
+ZIP_EXCLUDE = *.{o,gz,zip}
+
+# ------------ run executable out of this Makefile (yes/no) -------------------------
+# ------------ cmd line parameters for this executable -------------------------------
+EXE_START = no
+EXE_CMDLINE =
+
+#=======================================================================================
+# The following statements usually need not to be changed
+#=======================================================================================
+
+C_SOURCES = $(filter %.c, $(SOURCES))
+CPP_SOURCES = $(filter-out %.c, $(SOURCES))
+ALL_INC_DIR = $(addprefix -I, $(LOCAL_INC_DIR) $(GLOBAL_INC_DIR))
+ALL_LIB_DIR = $(addprefix -L, $(LOCAL_LIB_DIR) $(GLOBAL_LIB_DIR))
+GLOBAL_LIBSS = $(addprefix $(GLOBAL_LIB_DIR)/, $(GLOBAL_LIBS))
+LOCAL_LIBSS = $(addprefix $(LOCAL_LIB_DIR)/, $(LOCAL_LIBS))
+ALL_CFLAGS = $(CFLAGS) $(ALL_INC_DIR)
+ALL_LFLAGS = $(LFLAGS) $(ALL_LIB_DIR)
+BASENAMES = $(basename $(SOURCES))
+
+# ------------ generate the names of the object files --------------------------------
+OBJECTS = $(addsuffix .o,$(BASENAMES))
+
+# ------------ generate the names of the hidden prerequisite files -------------------
+PREREQUISITES = $(addprefix .,$(addsuffix .d,$(BASENAMES)))
+
+# ------------ make the executable ---------------------------------------------------
+$(EXECUTABLE): $(OBJECTS)
+ifeq ($(strip $(CPP_SOURCES)),)
+ $(CC) $(ALL_LFLAGS) -o $(EXECUTABLE) $(OBJECTS) $(LOCAL_LIBSS) $(GLOBAL_LIBSS) $(SYS_LIBS)
+else
+ $(CXX) $(ALL_LFLAGS) -o $(EXECUTABLE) $(OBJECTS) $(LOCAL_LIBSS) $(GLOBAL_LIBSS) $(SYS_LIBS)
+endif
+ifeq ($(EXE_START),yes)
+ ./$(EXECUTABLE) $(EXE_CMDLINE)
+endif
+
+# ------------ include the automatically generated prerequisites ---------------------
+# ------------ if target is not clean, tarball or zip ---------------------
+ifneq ($(MAKECMDGOALS),clean)
+ifneq ($(MAKECMDGOALS),tarball)
+ifneq ($(MAKECMDGOALS),zip)
+include $(PREREQUISITES)
+endif
+endif
+endif
+
+# ------------ make the objects ------------------------------------------------------
+%.o: %.c
+ $(CC) -c $(ALL_CFLAGS) $<
+
+%.o: %.cc
+ $(CXX) -c $(ALL_CFLAGS) $<
+
+%.o: %.cpp
+ $(CXX) -c $(ALL_CFLAGS) $<
+
+%.o: %.C
+ $(CXX) -c $(ALL_CFLAGS) $<
+
+# ------------ make the prerequisites ------------------------------------------------
+#
+.%.d: %.c
+ @$(make-prerequisite-c)
+
+.%.d: %.cc
+ @$(make-prerequisite-cplusplus)
+
+.%.d: %.cpp
+ @$(make-prerequisite-cplusplus)
+
+.%.d: %.C
+ @$(make-prerequisite-cplusplus)
+
+# canned command sequences
+# echoing of the sed command is suppressed by the leading @
+
+define make-prerequisite-c
+ @$(CC) -MM $(ALL_CFLAGS) $< > $@.$$$$; \
+ sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' < $@.$$$$ > $@; \
+ rm -f $@.$$$$;
+endef
+
+define make-prerequisite-cplusplus
+ @$(CXX) -MM $(ALL_CFLAGS) $< > $@.$$$$; \
+ sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' < $@.$$$$ > $@; \
+ rm -f $@.$$$$;
+endef
+
+# ------------ remove generated files ------------------------------------------------
+# ------------ remove hidden backup files --------------------------------------------
+clean:
+ rm --force $(EXECUTABLE) $(OBJECTS) $(PREREQUISITES) *~
+
+# ------------ tarball generation ------------------------------------------------------
+tarball:
+ @lokaldir=`pwd`; lokaldir=$${lokaldir##*/}; \
+ rm --force $$lokaldir.tar.gz; \
+ tar --exclude=$(TARBALL_EXCLUDE) \
+ --create \
+ --gzip \
+ --verbose \
+ --file $$lokaldir.tar.gz *
+
+# ------------ zip ---------------------------------------------------------------------
+zip:
+ @lokaldir=`pwd`; lokaldir=$${lokaldir##*/}; \
+ zip -r $$lokaldir.zip * -x $(ZIP_EXCLUDE)
+
+# ======================================================================================
+# vim: set tabstop=2: set shiftwidth=2: