The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Редактирования makefile в линкованных проектах, !*! ReRayne, 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

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

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

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

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

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

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

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

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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