Здравствуйте, Уважаемые форумчане!
Пробую собрать стек uip 1.0 с помощью gcc под win32 c использованим библиотеки winpcap. Для чего в опциях при линковке нужно указать эту самую библиотеку. Смотрю мэйкфайлы, но не могу понять, где правило, по которому производится сборка всего проекта из объектных файлов, т.е. вызов gcc с соответствующими ключами. Подскажите, плз.
PS: Ниже оригинальные мэйкфайлы из uip 1.0. Немного их поправив, я скомпилировал объектые файлы. Затем, вручную слинковав объектые файлы, я получил рабочий uip.exe
Основной makefile:
Код
all: uip
CC = gcc
AR = ar
APPS = webserver
CFLAGS = -Wall -g -I../uip -I. -fpack-struct -Os
-include ../uip/Makefile.include
uip: $(addprefix $(OBJECTDIR)/, main.o tapdev.o clock-arch.o) apps.a uip.a
clean:
rm -fr *.o *~ *core uip $(OBJECTDIR) *.a
Makefile.include:
Код
ifdef APPS
APPDIRS = $(foreach APP, $(APPS), ../apps/$(APP))
-include $(foreach APP, $(APPS), ../apps/$(APP)/Makefile.$(APP))
CFLAGS += $(addprefix -I../apps/,$(APPS))
endif
ifndef CCDEP
CCDEP = $(CC)
endif
ifndef CCDEPCFLAGS
CCDEPCFLAGS = $(CFLAGS)
endif
ifndef OBJECTDIR
OBJECTDIR = obj
endif
ifeq (${wildcard $(OBJECTDIR)},)
DUMMY := ${shell mkdir $(OBJECTDIR)}
endif
vpath %.c . ../uip ../lib $(APPDIRS)
$(OBJECTDIR)/%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
$(OBJECTDIR)/%.d: %.c
@set -e; rm -f $@; \
$(CCDEP) -MM $(CCDEPCFLAGS) $< > $@.$$$$; \
sed 's,\($*\)\.o[ :]*,$(OBJECTDIR)/\1.o $@ : ,g' < $@.$$$$ > $@; \
rm -f $@.$$$$
UIP_SOURCES=uip.c uip_arp.c uiplib.c psock.c timer.c uip-neighbor.c
ifneq ($(MAKECMDGOALS),clean)
-include $(addprefix $(OBJECTDIR)/,$(UIP_SOURCES:.c=.d) \
$(APP_SOURCES:.c=.d))
endif
uip.a: ${addprefix $(OBJECTDIR)/, $(UIP_SOURCES:.c=.o)}
$(AR) rcf $@ $^
apps.a: ${addprefix $(OBJECTDIR)/, $(APP_SOURCES:.c=.o)}
$(AR) rcf $@ $^
Спасибо.