Цитата(gotty @ Oct 28 2008, 11:01)

Что может быть проще. Берите пример проекта в MPLAB-е и экспортируйте мейкфайл.
У меня после компилера SDCC получается асмовый файл. Далее - асм и линкер мплабовский.
Проблема в том, что я выдрал где-то такой файл, и начал его переделывать
Код
PIC = 18f2431
NAME = MControl
PRJDIR = $(CURDIR)
SDCCDIR = C:/sdcc
SRC = main.c
SRCASM =
INCLUDE = -I$(SDCCDIR)/include/pic16
CC = $(SDCCDIR)/bin/sdcc
ASM = "C:/Program Files/Microchip/MPASM Suite/"mpasmwin.exe
LOAD =
#
#Note : rewrited for use with mpasmwin in command line mode
#ASMFLAGS = -c
ASMFLAGS = /c+ /m+ /o+
CFLAGS = -mpic16 -p$(PIC)
LDFLAGS = $(CFLAGS) -l libc18f.lib
OBJS = $(patsubst %.c,%.o,$(SRC)) $(patsubst %.asm,%.o,$(SRCASM))
LSTS = $(patsubst %.c,%.lst,$(SRC)) $(patsubst %.asm,%.lst,$(SRCASM))
ASMS = $(patsubst %.c,%.asm,$(SRC))
all: $(NAME).hex
$(NAME).hex : $(OBJS) $(SRC) $(SRCASM)
@echo -n "Linking ... "
@$(CC) -o $@ $(LDFLAGS) $(OBJS)
@ls -l $@
@echo "done"
%.o: %.asm
@echo "Assembling ... $<"
$(ASM) $(ASMFLAGS) $(PRJDIR)/$<
%.o: %.c
@echo "Compiling ... $<"
@$(CC) $(INCLUDE) $(CFLAGS) -S -c $<
@$(ASM) $(ASMFLAGS) $*.asm
clean :
@rm -f $(ASMS) $(LSTS) $(OBJS) $(NAME).lst $(NAME).hex $(NAME).cod
За линкер просьба не пинать - я до него еще не дошел.
Короче, при вызове $(ASM) $(ASMFLAGS) $(PRJDIR)/$< ,mpasmwin получает в командную строку путь $(PRJDIR) в линуксоидном формате и начинает рассказывать, что файл не найден. Попытка заставить асм взять файл из текущей директории - те же яйца. В общем, только с полными путями. Как проще всего слеши поменять ?