############### # Utilisation # ############### # # TARGET : nom du binaire à générer (ex : coincoin) # STATICLIB : nom de la bibliothèque statique à générer (ex: # libcoincoin.a) # LDADD : objets à ajouter au link # SOURCES : suite de sources à compiler (ex: coincoin.c) # SUBDIRS : liste des sous-répertoires à prendre en compte (ex: # petitcoin grandcoin) # ## CC=gcc CFLAGS+=-Wall ifeq ($(shell uname -m),ppc) CFLAGS+=-DBIG_ENDIAN endif OBJS=$(SOURCES:.c=.o) ASM=$(SOURCES:.c=.s) .PHONY = all clean run asm gdb #Sous reps all: $(STATICLIB) $(TARGET) @for dir in ${SUBDIRS} ; do ( $(MAKE) -C $$dir ) ; done # Compilation (binaire) $(TARGET): $(OBJS) $(CC) -o $@ $^ $(LDADD) $(LDFLAGS) # Compilation (static lib) $(STATICLIB): $(OBJS) ar rc $@ $^ ranlib $@ %.o: %.c $(CC) -c $< $(CFLAGS) # Sources ASM asm: $(ASM) %.s: %.c $(CC) -S $< # Divers clean: @for dir in ${SUBDIRS} ; do ( $(MAKE) -C $$dir clean ) ; done rm -f $(OBJS) $(TARGET) $(ASM) $(STATICLIB) run: $(TARGET) ./$(TARGET) gdb: gdb $(TARGET)