Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: jamesbond 04 Února 2011, 20:53:59
-
Ahoj, doteraz som si svoj Makefile pisal sam a postupne vypiloval k mojej spokojnosti. Ale zatial som vzdy mal vsetky sources v hlavnom adresari. Teraz mam od Atmel zdrojaky, ktore su organizovane vo viacerych slozkach. Po dlhsom googleni, som sa zasekol a neviem ako dalej. Nasiel by sa tu niekto kto by mi vedel pomoct ?
make teraz pise toto:
Building project
sdcc -mmcs51 --model-small --code-size 32768 -c lib_mcu/usb/usb_drv.c
lib_mcu/usb/usb_drv.c:19:20: error: config.h: No such file or directory
Nasiel som nieco s volanim shell, ale robim striedavo pod Windows/Ubuntu a pod Windows by volanie shell asi nefungovalo.
SOURCES := $(shell find $(SRCDIR) -name "*.$(SFILES)")
Toto by pod Windows asi nefungovalo.
Existuje nejaky sposob ako upravit tento makefile tak aby kompiloval aj po adresaroch a fungoval pod WIN/LINUX ?
tu je moj Makefile:
REMOVE = rm -f
RENAME = mv
COMPILER = sdcc
REPORT = tail -n 5
PACKHEX = packihx
# Linker will check the target program size
ROM_SIZE = 32768
# Compiler options, --acall-ajmp can only be used for devices with max 2kB ROM
SDCCCFLAGS = -mmcs51 --model-small --code-size $(ROM_SIZE)
# These settings control where the compiler will place the code and variables in memory.
#ASLINKFLAGS = --code-loc 0x2000 --data-loc 0x30 --stack-after-data --xram-loc 0x6000
# Target file name (without extension).
TARGET = main
SRC = lib_mcu/usb/usb_drv.c lib_mem/virtual_mem/virtual_mem.c modules/control_access/ctrl_access.c \
modules/scheduler/scheduler.c modules/scsi_decoder/scsi_decoder.c modules/usb/usb_enum.c \
modules/usb/usb_task.c modules/usb/usb_user_configuration.c modules/usb/usb_user_enum.c
OBJ = $(addsuffix .rel, $(basename $(SRC)))
all: pre-build $(TARGET).hex post-build
pre-build:
@echo 'Building project'
post-build:
$(REPORT) $(TARGET).mem
${PACKHEX} $(TARGET).ihx > $(TARGET).hex
main.hex: $(TARGET).c $(OBJ)
sdcc $(SDCCCFLAGS) $(ASLINKFLAGS) $^
%.rel: %.c %.h
sdcc $(SDCCCFLAGS) -c $<
clean:
@echo 'Cleaning project'
$(REMOVE) *.ihx
$(REMOVE) *.hex
$(REMOVE) *.asm
$(REMOVE) *.mem
$(REMOVE) *.rel
$(REMOVE) *.map
$(REMOVE) *.sym
$(REMOVE) *.lst
$(REMOVE) *.rst
$(REMOVE) *.lnk