For assembling you can use either GPUTILS'
gpasm.exe or MPLAB's mpasmwin.exe. GPUTILS are available from http://sourceforge.net/projects/gputils.
For linking you can use either GPUTILS' gplink or MPLAB's mplink.exe.
If you use MPLAB and an interrupt function then the linker script
file vectors section will need to be enlarged to link with mplink.
Pic device specific header and c source files are automatically generated
from MPLAB include files, which are published by Microchip with a
special requirement that they are only to be used with authentic Microchip
devices. This reqirement prevents to publish generated header and
c source files under the GPL compatible license, so they are located
in non-free directory (see section 2.3). In order
to include them in include and library search paths, the --use-non-free
command line option should be defined.
NOTE: the compiled code, which use non-free pic device specific libraries,
is not GPL compatible!
Here is a Makefile using GPUTILS:
.c.o:Here is a Makefile using MPLAB:
sdcc -V -use-non-free -mpic14 -p16f877 -c $<
$(PRJ).hex: $(OBJS)
gplink -m -s $(PRJ).lkr -o $(PRJ).hex $(OBJS) libsdcc.lib
.c.o:Please note that indentations within a Makefile have to be done with a tabulator character.
sdcc -S -V -use-non-free -mpic14 -p16f877 $<
mpasmwin /q /o $*.asm
$(PRJ).hex: $(OBJS)
mplink /v $(PRJ).lkr /m $(PRJ).map /o $(PRJ).hex $(OBJS) libsdcc.lib