]> git.llucax.com Git - software/sercom-old.git/blob - doc/examples/Makefile-cpp
06927aef109f6f1cf791dd04b63804e4bd2e6f1d
[software/sercom-old.git] / doc / examples / Makefile-cpp
1 # Makefile de ejemplo para C++
2
3 # Creado: jue abr 15 15:34:19 ART 2004
4 #
5 # Copyleft 2004 - Leandro Lucarella, Bajo licencia GPL [http://www.gnu.org/]
6 #
7
8 # CONFIGURACION
9 ################
10
11 # Nombre del ejecutable.
12 target = tp
13
14 # Extensión de los archivos a compilar (c para C, cpp o cc o cxx para C++).
15 extension = cpp
16
17 # Archivos con el código fuente que componen el ejecutable. Si no se especifica,
18 # toma todos los archivos con la extensión mencionada. Para especificar hay que
19 # descomentar la línea (quitarle el '#' del principio).
20 # NOTA: No poner cabeceras (.h). 
21 #fuentes = entrada.cpp
22
23 # Si es un programa GTK+, descomentá (quitale el '#' a) la siguiente línea.
24 #gtk = si 
25
26
27 # CONFIGURACION "AVANZADA"
28 ###########################
29
30 # Opciones para el compilador C.
31 CFLAGS = -Wall -ggdb -ansi -DDEBUG
32
33 # Opciones para el compilador C++.
34 CXXFLAGS = $(CFLAGS) -fno-inline
35
36 # Opciones del enlazador.
37 LDFLAGS=-static
38
39
40 # VARIABLES CALCULADAS A PARTIR DE LA CONFIGURACION
41 ####################################################
42
43 # Agrego flags y libs de GTK+ de ser necesario.
44 ifdef gtk
45 CFLAGS += $(shell pkg-config --cflags gtk+-2.0)
46 CXXFLAGS += $(shell pkg-config --cflags gtk+-2.0)
47 LDFLAGS += $(shell pkg-config --libs gtk+-2.0)
48 endif
49
50 # Uso enlazador de c++ si es código no C.
51 ifeq ($(extension), c)
52 enlazador = $(CC)
53 else
54 enlazador = $(CXX)
55 endif
56
57 # Si no especifica archivos, tomo todos.
58 fuentes ?= $(wildcard *.$(extension))
59
60
61 # REGLAS
62 #########
63
64 .PHONY: all clean
65
66 all: $(target)
67
68 o_files = $(patsubst %.$(extension),%.o,$(fuentes))
69
70 $(target): $(o_files)
71         @if [ -z "$(o_files)" ]; \
72         then \
73                 echo "No hay archivos de entrada, recuerde que la extensión debe ser '.$(extension)'."; \
74                 false; \
75         fi
76         $(enlazador) $(LDFLAGS) $(o_files) $(LOADLIBES) $(LDLIBS) -o $(target)
77
78 clean:
79         @$(RM) -fv *.o $(target)
80