реклама на сайте
подробности

 
 
> makefile в uip 1.0, как производится линковка?
raider
сообщение Apr 25 2007, 13:06
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 117
Регистрация: 11-05-05
Из: г. Москва
Пользователь №: 4 916



Здравствуйте, Уважаемые форумчане!
Пробую собрать стек 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 $@ $^

Спасибо.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 19:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.0137 секунд с 7
ELECTRONIX ©2004-2016