Forum Menu




 


Log in Problems?
New User? Sign Up!
AVR Freaks Forum Index

Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Author Message
Tron[ic]
PostPosted: Apr 18, 2012 - 09:22 PM
Hangaround


Joined: Oct 25, 2011
Posts: 249
Location: Brussels, Belgium

Hello,

I have an example program that I want to modificate;

In the makefile a lot of objects are built in order to link.
Then the right files are compiled.

Is there a way to add .c files to my project without using objects?

I tried just to add it in my project but it doesn't work.

Should I do something in the makefile?

Thanks a lot
 
 View user's profile Send private message  
Reply with quote Back to top
Koshchi
PostPosted: Apr 18, 2012 - 09:36 PM
10k+ Postman


Joined: Nov 17, 2004
Posts: 13834
Location: Vancouver, BC

Quote:
I tried just to add it in my project but it doesn't work.

Should I do something in the makefile?
If the project is using a makefile, then the IDE will pay no attention to what files are in the project (the makefile will be used rather than the project file list). Where to add it in the makefile depends on how the makefile is set up. Post it here.

_________________
Regards,
Steve A.

The Board helps those that help themselves.
 
 View user's profile Send private message  
Reply with quote Back to top
Tron[ic]
PostPosted: Apr 18, 2012 - 09:52 PM
Hangaround


Joined: Oct 25, 2011
Posts: 249
Location: Brussels, Belgium

here it is:

Code:
############################################################################################
# Makefile for the project Star Release Using single source files
############################################################################################
# $Id: Makefile_Debug 27393 2011-06-22 10:48:52Z yogesh.bellan $

# Build specific properties
_TAL_TYPE = ATMEGARF_TAL_1
_PAL_TYPE = ATMEGA128RFA1
_PAL_GENERIC_TYPE = MEGA_RF
_BOARD_TYPE = EK1
_HIGHEST_STACK_LAYER = MAC

# Path variables
## Path to main project directory
PATH_ROOT = ../../../../..
PATH_APP = ../..
PATH_TAL = $(PATH_ROOT)/TAL
PATH_TAL_CB = $(PATH_ROOT)/TAL/Src
PATH_MAC = $(PATH_ROOT)/MAC
PATH_PAL = $(PATH_ROOT)/PAL
PATH_TFA = $(PATH_ROOT)/TFA
PATH_RES = $(PATH_ROOT)/Resources
PATH_SIO_SUPPORT = $(PATH_ROOT)/Applications/Helper_Files/SIO_Support
PATH_GLOB_INC = $(PATH_ROOT)/Include

## General Flags
PROJECT = Star
MCU = atmega128rfa1
TARGET_DIR = .
TARGET = $(TARGET_DIR)/$(PROJECT).elf
CC = avr-gcc

## Options common to compile, link and assembly rules
COMMON = -mmcu=$(MCU)

## Compile options common for all C compilation units.
CFLAGS = $(COMMON)
CFLAGS += -Wall -Werror -g -Wundef -std=c99 -DSIO_HUB -DUART0 -Os
CFLAGS += -DDEBUG=1
CFLAGS += -DENABLE_TFA
CFLAGS += -DFFD
CFLAGS += -DTAL_TYPE=$(_TAL_TYPE)
CFLAGS += -DPAL_GENERIC_TYPE=$(_PAL_GENERIC_TYPE)
CFLAGS += -DPAL_TYPE=$(_PAL_TYPE)
CFLAGS += -DBOARD_TYPE=$(_BOARD_TYPE)
CFLAGS += -DHIGHEST_STACK_LAYER=$(_HIGHEST_STACK_LAYER)
CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d
CFLAGS += -DBAUD_RATE=500000
CFLAGS += -DENABLE_RC_OSC_CALIBRATION
CFLAGS += -DHIGH_DATA_RATE_SUPPORT
CFLAGS += -DREDUCED_PARAM_CHECK
CFLAGS += -DENABLE_TSTAMP

## Assembly specific flags
ASMFLAGS = $(COMMON)
ASMFLAGS += $(CFLAGS)
ASMFLAGS += -x assembler-with-cpp -Wa,-g

## Linker flags
LDFLAGS = $(COMMON) -Wl,-Map=$(PROJECT).map -Wl,--section-start=.data=0x800200
LDFLAGS += -Wl,-u,vfprintf -lprintf_flt

## Intel Hex file production flags
HEX_FLASH_FLAGS = -R .eeprom

HEX_EEPROM_FLAGS = -j .eeprom
HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load"
HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 --no-change-warnings

## Include directories for application
INCLUDES = -I $(PATH_APP)/Inc
## Include directories for SIO support
INCLUDES += -I $(PATH_SIO_SUPPORT)/Inc
## Include directories for general includes
INCLUDES += -I $(PATH_GLOB_INC)
## Include directories for resources
INCLUDES += -I $(PATH_RES)/Buffer_Management/Inc/
INCLUDES += -I $(PATH_RES)/Queue_Management/Inc/
## Include directories for MAC
INCLUDES += -I $(PATH_MAC)/Inc/
## Include directories for TAL
INCLUDES += -I $(PATH_TAL)/Inc/
INCLUDES += -I $(PATH_TAL)/$(_TAL_TYPE)/Inc/
## Include directories for PAL
INCLUDES += -I $(PATH_PAL)/Inc/
INCLUDES += -I $(PATH_PAL)/$(_PAL_GENERIC_TYPE)/Generic/Inc
INCLUDES += -I $(PATH_PAL)/$(_PAL_GENERIC_TYPE)/$(_PAL_TYPE)/Inc/
## Include directories for specific boards type
INCLUDES += -I $(PATH_PAL)/$(_PAL_GENERIC_TYPE)/$(_PAL_TYPE)/Boards/
INCLUDES += -I $(PATH_PAL)/$(_PAL_GENERIC_TYPE)/$(_PAL_TYPE)/Boards/$(_BOARD_TYPE)
## Include directories for TFA
INCLUDES += -I $(PATH_TFA)/Inc/

## Objects that must be built in order to link
OBJECTS = $(TARGET_DIR)/main.o\
        $(TARGET_DIR)/sio_handler.o\
   $(TARGET_DIR)/pal_uart.o\
   $(TARGET_DIR)/pal_usb_ftdi.o\
   $(TARGET_DIR)/pal_sio_hub.o\
   $(TARGET_DIR)/pal_irq.o\
   $(TARGET_DIR)/pal.o\
   $(TARGET_DIR)/pal_mcu_generic.o\
   $(TARGET_DIR)/pal_timer.o\
   $(TARGET_DIR)/pal_board.o\
   $(TARGET_DIR)/pal_utils.o\
   $(TARGET_DIR)/bmm.o\
   $(TARGET_DIR)/qmm.o\
   $(TARGET_DIR)/tal.o\
   $(TARGET_DIR)/tal_rx.o\
   $(TARGET_DIR)/tal_tx.o\
   $(TARGET_DIR)/tal_ed.o\
   $(TARGET_DIR)/tal_slotted_csma.o\
   $(TARGET_DIR)/tal_pib.o\
   $(TARGET_DIR)/tal_init.o\
   $(TARGET_DIR)/tal_irq_handler.o\
   $(TARGET_DIR)/tal_pwr_mgmt.o\
   $(TARGET_DIR)/tal_rx_enable.o \
   $(TARGET_DIR)/mac_associate.o \
   $(TARGET_DIR)/mac_beacon.o \
   $(TARGET_DIR)/mac_callback_wrapper.o \
   $(TARGET_DIR)/mac_data_ind.o \
   $(TARGET_DIR)/mac_data_req.o \
   $(TARGET_DIR)/mac_disassociate.o \
   $(TARGET_DIR)/mac_dispatcher.o \
   $(TARGET_DIR)/mac.o \
   $(TARGET_DIR)/mac_mcps_data.o \
   $(TARGET_DIR)/mac_misc.o \
   $(TARGET_DIR)/mac_orphan.o \
   $(TARGET_DIR)/mac_pib.o \
   $(TARGET_DIR)/mac_poll.o \
   $(TARGET_DIR)/mac_process_beacon_frame.o \
   $(TARGET_DIR)/mac_process_tal_tx_frame_status.o \
   $(TARGET_DIR)/mac_rx_enable.o \
   $(TARGET_DIR)/mac_scan.o \
   $(TARGET_DIR)/mac_start.o \
   $(TARGET_DIR)/mac_sync.o \
   $(TARGET_DIR)/mac_tx_coord_realignment_command.o \
   $(TARGET_DIR)/mac_api.o \
   $(TARGET_DIR)/usr_mcps_purge_conf.o \
   $(TARGET_DIR)/usr_mlme_beacon_notify_ind.o \
   $(TARGET_DIR)/usr_mlme_disassociate_conf.o \
   $(TARGET_DIR)/usr_mlme_disassociate_ind.o \
   $(TARGET_DIR)/usr_mlme_get_conf.o \
   $(TARGET_DIR)/usr_mlme_orphan_ind.o \
   $(TARGET_DIR)/usr_mlme_poll_conf.o \
   $(TARGET_DIR)/usr_mlme_rx_enable_conf.o \
   $(TARGET_DIR)/usr_mlme_sync_loss_ind.o \
        $(TARGET_DIR)/tfa.o
       

## Objects explicitly added by the user
LINKONLYOBJECTS = 

## Build
all: $(TARGET) $(TARGET_DIR)/$(PROJECT).hex $(TARGET_DIR)/$(PROJECT).eep $(TARGET_DIR)/$(PROJECT).lss size

## Compile
$(TARGET_DIR)/main.o: $(PATH_APP)/Src/main.c
   $(CC) $(INCLUDES) $(CFLAGS) -c  -o $@ $<
$(TARGET_DIR)/sio_handler.o: $(PATH_SIO_SUPPORT)/Src/sio_handler.c
   $(CC) $(INCLUDES) $(CFLAGS) -c  -o $@ $<
$(TARGET_DIR)/pal_uart.o: $(PATH_PAL)/$(_PAL_GENERIC_TYPE)/Generic/Src/pal_uart.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/pal_usb_ftdi.o: $(PATH_PAL)/$(_PAL_GENERIC_TYPE)/$(_PAL_TYPE)/Src/pal_usb_ftdi.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/pal_sio_hub.o: $(PATH_PAL)/$(_PAL_GENERIC_TYPE)/$(_PAL_TYPE)/Src/pal_sio_hub.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/pal_irq.o: $(PATH_PAL)/$(_PAL_GENERIC_TYPE)/$(_PAL_TYPE)/Src/pal_irq.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/pal.o: $(PATH_PAL)/$(_PAL_GENERIC_TYPE)/Generic/Src/pal.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/pal_mcu_generic.o: $(PATH_PAL)/$(_PAL_GENERIC_TYPE)/$(_PAL_TYPE)/Src/pal_mcu_generic.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/pal_timer.o: $(PATH_PAL)/$(_PAL_GENERIC_TYPE)/$(_PAL_TYPE)/Src/pal_timer.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/pal_board.o: $(PATH_PAL)/$(_PAL_GENERIC_TYPE)/$(_PAL_TYPE)/Boards/$(_BOARD_TYPE)/pal_board.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/pal_utils.o: $(PATH_PAL)/$(_PAL_GENERIC_TYPE)/Generic/Src/pal_utils.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/bmm.o: $(PATH_RES)/Buffer_Management/Src/bmm.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/qmm.o: $(PATH_RES)/Queue_Management/Src/qmm.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/tal.o: $(PATH_TAL)/$(_TAL_TYPE)/Src/tal.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/tal_rx.o: $(PATH_TAL)/$(_TAL_TYPE)/Src/tal_rx.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/tal_tx.o: $(PATH_TAL)/$(_TAL_TYPE)/Src/tal_tx.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/tal_ed.o: $(PATH_TAL)/$(_TAL_TYPE)/Src/tal_ed.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/tal_slotted_csma.o: $(PATH_TAL)/$(_TAL_TYPE)/Src/tal_slotted_csma.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/tal_pib.o: $(PATH_TAL)/$(_TAL_TYPE)/Src/tal_pib.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/tal_init.o: $(PATH_TAL)/$(_TAL_TYPE)/Src/tal_init.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/tal_irq_handler.o: $(PATH_TAL)/$(_TAL_TYPE)/Src/tal_irq_handler.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/tal_pwr_mgmt.o: $(PATH_TAL)/$(_TAL_TYPE)/Src/tal_pwr_mgmt.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/tal_rx_enable.o: $(PATH_TAL)/$(_TAL_TYPE)/Src/tal_rx_enable.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/tfa.o: $(PATH_TFA)/$(_TAL_TYPE)/Src/tfa.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/mac_associate.o: $(PATH_MAC)/Src/mac_associate.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/mac_beacon.o: $(PATH_MAC)/Src/mac_beacon.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/mac_callback_wrapper.o: $(PATH_MAC)/Src/mac_callback_wrapper.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/mac_data_ind.o: $(PATH_MAC)/Src/mac_data_ind.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/mac_data_req.o: $(PATH_MAC)/Src/mac_data_req.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/mac_disassociate.o: $(PATH_MAC)/Src/mac_disassociate.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/mac_dispatcher.o: $(PATH_MAC)/Src/mac_dispatcher.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/mac.o: $(PATH_MAC)/Src/mac.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/mac_mcps_data.o: $(PATH_MAC)/Src/mac_mcps_data.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/mac_misc.o: $(PATH_MAC)/Src/mac_misc.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/mac_orphan.o: $(PATH_MAC)/Src/mac_orphan.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/mac_pib.o: $(PATH_MAC)/Src/mac_pib.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/mac_poll.o: $(PATH_MAC)/Src/mac_poll.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/mac_process_beacon_frame.o: $(PATH_MAC)/Src/mac_process_beacon_frame.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/mac_process_tal_tx_frame_status.o: $(PATH_MAC)/Src/mac_process_tal_tx_frame_status.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/mac_rx_enable.o: $(PATH_MAC)/Src/mac_rx_enable.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/mac_scan.o: $(PATH_MAC)/Src/mac_scan.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/mac_start.o: $(PATH_MAC)/Src/mac_start.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/mac_sync.o: $(PATH_MAC)/Src/mac_sync.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/mac_tx_coord_realignment_command.o: $(PATH_MAC)/Src/mac_tx_coord_realignment_command.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/usr_mcps_data_conf.o: $(PATH_MAC)/Src/usr_mcps_data_conf.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/usr_mcps_data_ind.o: $(PATH_MAC)/Src/usr_mcps_data_ind.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/usr_mcps_purge_conf.o: $(PATH_MAC)/Src/usr_mcps_purge_conf.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/usr_mlme_associate_conf.o: $(PATH_MAC)/Src/usr_mlme_associate_conf.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/usr_mlme_associate_ind.o: $(PATH_MAC)/Src/usr_mlme_associate_ind.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/usr_mlme_beacon_notify_ind.o: $(PATH_MAC)/Src/usr_mlme_beacon_notify_ind.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/usr_mlme_comm_status_ind.o: $(PATH_MAC)/Src/usr_mlme_comm_status_ind.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/usr_mlme_disassociate_conf.o: $(PATH_MAC)/Src/usr_mlme_disassociate_conf.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/usr_mlme_disassociate_ind.o: $(PATH_MAC)/Src/usr_mlme_disassociate_ind.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/usr_mlme_get_conf.o: $(PATH_MAC)/Src/usr_mlme_get_conf.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/usr_mlme_orphan_ind.o: $(PATH_MAC)/Src/usr_mlme_orphan_ind.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/usr_mlme_poll_conf.o: $(PATH_MAC)/Src/usr_mlme_poll_conf.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/usr_mlme_reset_conf.o: $(PATH_MAC)/Src/usr_mlme_reset_conf.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/usr_mlme_rx_enable_conf.o: $(PATH_MAC)/Src/usr_mlme_rx_enable_conf.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/usr_mlme_scan_conf.o: $(PATH_MAC)/Src/usr_mlme_scan_conf.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/usr_mlme_set_conf.o: $(PATH_MAC)/Src/usr_mlme_set_conf.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/usr_mlme_start_conf.o: $(PATH_MAC)/Src/usr_mlme_start_conf.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/usr_mlme_sync_loss_ind.o: $(PATH_MAC)/Src/usr_mlme_sync_loss_ind.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
$(TARGET_DIR)/mac_api.o: $(PATH_MAC)/Src/mac_api.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<


##Link
$(TARGET): $(OBJECTS)
    $(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) -o $(TARGET)

%.hex: $(TARGET)
   avr-objcopy -O ihex $(HEX_FLASH_FLAGS)  $< $@

%.eep: $(TARGET)
   avr-objcopy $(HEX_EEPROM_FLAGS) -O ihex $< $@ || exit 0

%.lss: $(TARGET)
   avr-objdump -h -S $< > $@

## avr-size options
ifdef windir
SIZEFLAGS = -C --mcu=${MCU}
else
ifdef WINDIR
SIZEFLAGS = -C --mcu=${MCU}
else
SIZEFLAGS = -B
endif
endif

size: ${TARGET}
   @echo
   @avr-size $(SIZEFLAGS) ${TARGET}

## Clean target
.PHONY: clean
clean:
   -rm -rf $(TARGET_DIR)/*.o $(TARGET_DIR)/$(PROJECT).elf dep/* $(TARGET_DIR)/$(PROJECT).hex $(TARGET_DIR)/$(PROJECT).eep $(TARGET_DIR)/$(PROJECT).lss $(TARGET_DIR)/$(PROJECT).map

## Other dependencies
-include $(shell mkdir dep 2>temp.err) $(wildcard dep/*)
 
 View user's profile Send private message  
Reply with quote Back to top
JohanEkdahl
PostPosted: Apr 18, 2012 - 10:14 PM
10k+ Postman


Joined: Mar 27, 2002
Posts: 18545
Location: Lund, Sweden

First you will need to add a rule to take your source file and compile it into an object file, i.e. something similar to this:
Code:
$(TARGET_DIR)/yourfile.o: $(PATH_MAC)/Src/yourfile.c
   $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<

but where you replace the filename with the path and name of your specific file.

Then you will need to tell the linker to pull that file also into the link stage, i.e. add a line at the end of the objects list similar to the entries tha are already there. Don't forget to place a line continuation backslash on the preceding line, e.g.
Code:

   .
   .
   $(TARGET_DIR)/usr_mlme_sync_loss_ind.o \
   $(TARGET_DIR)/tfa.o \
   $(TARGET_DIR)/yourfile.o
 
 View user's profile Send private message Visit poster's website 
Reply with quote Back to top
ChaunceyGardiner
PostPosted: Apr 18, 2012 - 10:47 PM
Posting Freak


Joined: Mar 09, 2012
Posts: 1452
Location: North Carolina, USA

JohanEkdahl wrote:
Then you will need to tell the linker to pull that file also into the link stage, i.e. add a line at the end of the objects list similar to the entries tha are already there. Don't forget to place a line continuation backslash on the preceding line, e.g.
Code:

   .
   .
   $(TARGET_DIR)/usr_mlme_sync_loss_ind.o \
   $(TARGET_DIR)/tfa.o \
   $(TARGET_DIR)/yourfile.o
It should be possible to do this without including the new .o file in the linking of the existing app, if that's what he wants. If memory serves me, adding $(TARGET_DIR)/yourfile.o to the all: line is all it takes.
 
 View user's profile Send private message  
Reply with quote Back to top
Tron[ic]
PostPosted: Apr 18, 2012 - 11:15 PM
Hangaround


Joined: Oct 25, 2011
Posts: 249
Location: Brussels, Belgium

Ok thank you. I can build my project now.

But know, when i want to debug I have this error that I hadn't before:

00:07:27: [ERROR] Failed to launch. Missing file:.....*elf

It's saying it misses the elf file, but an *elf file is present in my project.

Any ideas?
 
 View user's profile Send private message  
Reply with quote Back to top
JohanEkdahl
PostPosted: Apr 19, 2012 - 07:15 AM
10k+ Postman


Joined: Mar 27, 2002
Posts: 18545
Location: Lund, Sweden

Quote:

It should be possible to do this without including the new .o file in the linking of the existing app, if that's what he wants. If memory serves me, adding $(TARGET_DIR)/yourfile.o to the all: line is all it takes.

Perhaps. But then he will get the default .c.o rule, which might not be what he wants. I went for simply expanding the already very clumsy makefile with another instance of the same clumsiness.
 
 View user's profile Send private message Visit poster's website 
Reply with quote Back to top
Display posts from previous:     
Jump to:  
All times are GMT + 1 Hour
Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Powered by PNphpBB2 © 2003-2006 The PNphpBB Group
Credits