The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Редактирования makefile в линкованных проектах"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Изначальное сообщение [ Отслеживать ]

"Редактирования makefile в линкованных проектах"  +/
Сообщение от ReRayne (ok) on 12-Май-11, 17:37 
Собственно, ситуация следующая.

Linux Ubuntu + Eclipse CDT

Есть проект А. У него в корневой папке лежит его makefile, который собирает проект.
Проект А успешно собирается.

Есть проект В. У него свой makefile, который билдит только его. При чем src лежит просто в папке /projectB, а makefile лежит в /projectB/Debug.

К проекту В прилинкован проект А(/projectB/projectA). Но вот только незадача, при компиляции проект В пытается собрать проект А своим собственным мейком и ни в какую не хочет запускать makefile проекта A.

Как надо изменить makefile, чтобы перед сборкой проекта B сначала собирался проект А?

Текст makefile:

-include ../makefile.init

RM := rm -rf

# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
-include src/subdir.mk
-include objects.mk

ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
endif

-include ../makefile.defs

# Add inputs and outputs from these tool invocations to the build variables

# All Target
all: file_writer


# Tool invocations
file_writer: $(OBJS) $(USER_OBJS)
    @echo 'Building target: $@'
    @echo 'Invoking: GCC C Linker'
    gcc  -o"file_writer" $(OBJS) $(USER_OBJS) $(LIBS)
    @echo 'Finished building target: $@'
    @echo ' '

# Other Targets
clean:
    -$(RM) $(OBJS)$(C_DEPS)$(EXECUTABLES) file_writer
    -@echo ' '

.PHONY: all clean dependents
.SECONDARY:

-include ../makefile.targets

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Редактирования makefile в линкованных проектах"  +/
Сообщение от sany (ok) on 12-Май-11, 18:46 
почему вообще что-то собирается в /projectB/projectA ?

можно заменить цель 'all' так:
all: make_projectB file_writer

и добавить дополнительную цель (выполнить мейкфайл в каталоге projectB):
make_projectB:
    $(MAKE) -C projectB

На будущее: то, что вы пишете свои мейкфайлы - очень плохо и дурно, попробуйте cmake, например.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Редактирования makefile в линкованных проектах"  +/
Сообщение от Вова on 13-Май-11, 09:19 
> почему вообще что-то собирается в /projectB/projectA ?
> можно заменить цель 'all' так:
> all: make_projectB file_writer
> и добавить дополнительную цель (выполнить мейкфайл в каталоге projectB):
> make_projectB:
>     $(MAKE) -C projectB
> На будущее: то, что вы пишете свои мейкфайлы - очень плохо и
> дурно, попробуйте cmake, например.

Давай гуглю об этом расскажем, андроид плохо и и дурно собирают.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Редактирования makefile в линкованных проектах"  +/
Сообщение от sany (ok) on 13-Май-11, 16:00 
>> почему вообще что-то собирается в /projectB/projectA ?
>> можно заменить цель 'all' так:
>> all: make_projectB file_writer
>> и добавить дополнительную цель (выполнить мейкфайл в каталоге projectB):
>> make_projectB:
>>     $(MAKE) -C projectB
>> На будущее: то, что вы пишете свои мейкфайлы - очень плохо и
>> дурно, попробуйте cmake, например.
> Давай гуглю об этом расскажем, андроид плохо и и дурно собирают.

понятно, что есть особенные проекты

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру