sous linux seulement :
.PHONY: all clean
SRC = fichier_1.c fichier_2.c fichier_3.c
OBJ = $(SRC:.c=.o)
BIN = le_nom_de_ton_programme
CFLAGS = `pkg-config --cflags gtk+-2.0`
LFLAGS = `pkg-config --libs gtk+-2.0`
CC = gcc -c $< $(CFLAGS) -o $@
LD = gcc -s $^ $(LFLAGS) -o $@
RM = rm -f $(OBJ) $(BIN)
all: $(BIN)
%.o: %.c *.h
$(CC)
%.o: %.c
$(CC)
$(BIN): $(OBJ)
$(LD)
clean:
$(RM)
sous windows seulement :
.PHONY: all clean
SRC = fichier_1.c fichier_2.c fichier_3.c
OBJ = $(SRC:.c=.o)
BIN = le_nom_de_ton_programme.exe
CFLAGS = -mconsole -mno-cygwin -mms-bitfields
LFLAGS = -latk-1.0.dll -lbluecurve.dll -lfreetype.dll -lgdk_pixbuf-2.0.dll -lgdk-win32-2.0.dll -lglib-2.0.dll -lgmodule-2.0.dll -lgobject-2.0.dll -lgthread-2.0.dll -lgtk-win32-2.0.dll -lintl.dll -ljpeg.dll -llighthouseblue.dll -lpango-1.0.dll -lpangoft2-1.0.dll -lpangowin32-1.0.dll -lpng.dll -lpng12.dll -ltiff.dll -lz.dll -lgdi32 -lole32 -luuid
CC = gcc -c $< $(CFLAGS) -o $@
LD = gcc -s $^ $(LFLAGS) -o $@
RM = del /F /Q $(OBJ) $(BIN)
all: $(BIN)
%.o: %.c *.h
$(CC)
%.o: %.c
$(CC)
$(BIN): $(OBJ)
$(LD)
clean:
$(RM)
makefile générique windows et linux :
.PHONY: all clean
SRC = fichier_1.c fichier_2.c fichier_3.c
OBJ = $(SRC:.c=.o)
ifeq ($(SHELL),sh.exe)
CFLAGS = -mconsole -mno-cygwin -mms-bitfields
LFLAGS = -latk-1.0.dll -lbluecurve.dll -lfreetype.dll -lgdk_pixbuf-2.0.dll -lgdk-win32-2.0.dll -lglib-2.0.dll -lgmodule-2.0.dll -lgobject-2.0.dll -lgthread-2.0.dll -lgtk-win32-2.0.dll -lintl.dll -ljpeg.dll -llighthouseblue.dll -lpango-1.0.dll -lpangoft2-1.0.dll -lpangowin32-1.0.dll -lpng.dll -lpng12.dll -ltiff.dll -lz.dll -lgdi32 -lole32 -luuid
BIN = le_nom_de_ton_programme.exe
RM = del /F /Q
else
CFLAGS = `pkg-config --cflags gtk+-2.0`
LFLAGS = `pkg-config --libs gtk+-2.0`
BIN = le_nom_de_ton_programme
RM = rm -f
endif
CC = gcc -c $< $(CFLAGS) -o $@
LD = gcc -s $^ $(LFLAGS) -o $@
RM += $(OBJ) $(BIN)
all: $(BIN)
%.o: %.c *.h
$(CC)
%.o: %.c
$(CC)
$(BIN): $(OBJ)
$(LD)
clean:
$(RM)
Si tu utilises C++ plutôt que C, remplace 'gcc' par 'g++', et çà devrait fonctionner...
A+