Moin,
zuerst die einfache Frage ;-) Optionales Einbinden kannst Du im Source natürlich mit #ifdef machen:
Code:
#ifdef GUI
#include gui.h
#endif
Du definierst dann einfach ein Flag -DGUI für die GUI-Version und lässt ihn in der non-GUI-Version weg.
Für die non-GUI-Version definierst Du ein eigenes Target, die CFLAGS, SRCS und OBJS teilst Du in einen allgemeinen Teil und einen GUI-spezifischen und fütterst damit die Targets, z. B. so (ungetestet):
Code:
# ...
CFLAGS = -O2 -D_FILE_OFFSET_BITS=64
GUI_CFLAGS = -DGUI `pkg-config --cflags gtk+-2.0`
TARGET = chpchk
CLI_TARGET = cli_chpchk
SRCS = intel.c amd.c toolkit.c chpchk.c
GUI_SRCS = gui.c
OBJS = intel.o amd.o toolkit.o chpchk.o
GUI_OBJS = gui.o
BLBS = intel_data.o amd_data.o
all: $(TARGET)
# install-Targets noch anpassen
# ...
$(TARGET): $(BLBS) $(OBJS) $(GUI_OBJS)
$(CC) -o $(TARGET) $(OBJS) $(GUI_OBJS) $(BLBS) $(LIBS) $(GUI_LIBS)
$(CLI_TARGET): $(BLBS) $(OBJS)
$(CC) -o $(TARGET) $(OBJS) $(BLBS) $(LIBS)
$(OBJS): %.o: %.c
$(CC) -o $@ -c $< $(CFLAGS)
$(GUI_OBJS): %.o: %.c
$(CC) -o $@ -c $< $(CFLAGS) $(GUI_CFLAGS)
# usw.
Jan
Lesezeichen