You can split your project to have 2 configure scripts. http://www.gnu.org/software/automake/manual/html_node/Subpackages.html http://www.gnu.org/software/autoconf/manual/autoconf-2.66/html_node/Subdirectories.html
You can either change the default compiler in configure.ac of your subpackage or you can create a proxy configure that alters the arguments passed from parent configure. On 30.12.2015 3:40, Daniel Campoverde Carrión [Alx741] wrote: > On Tue, Dec 29, 2015 at 10:45:22PM +0000, Gavin Smith wrote: >>> >>>> PIC_DEVICE=18f4550 >>>> CC=sdcc >>>> LD=sdcc >>>> FLAGS= --use-non-free -mpic16 -p$(PIC_DEVICE) >>>> AM_CFLAGS = $(FLAGS) >>>> AM_LDFLAGS= >>>> override CFLAGS= >>>> >>>> COMPILE=$(CC) $(FLAGS) -c -o >>>> LINK=$(LD) $(FLAGS) -o $@ >>>> >>>> noinst_PROGRAMS = firmware.hex >>>> firmware_hex_SOURCES = firmware.c >>> >>> * Notice i've tried (with no success) AM_CFLAGS, AM_LDFLAGS, override CFLAGS >> >> I don't think override CFLAGS means anything. >> >> Maybe try taking all of this out of Makefile.am and giving this >> information on the configure command-line: >> >> ./configure CC=sdcc LD=sdcc CFLAGS='--use-non-free -mpic16 -p18f4550' >> >> and so on. > > Thank you for the fast response, wouldn't that use SDCC for the whole project? > The problem is the project consist of C (pc) software and a firmware, so the > bigger part is build with GCC and just the firmware with SDCC. > > >> >>> I need to compile the code using SDCC compiler with the flags i specified >>> there, >>> but when i try `make` i got error because of additional flags being added >>> that >>> SDCC doesn't recognize: >> >> Right, I reckon the configure script isn't seeing what you put in >> Makefile.am, finds another C compiler and is using flags appropriate >> for that compiler. Putting CC=sdcc on the command line will let it >> know. (I believe the error message you're getting is to do with the >> "dependency style" of the C compiler that was found.) > > Oh i see... but how can i compile the code that do need GCC? my code structure > is basically like this: > > src/ > | > +---app/ > | > +---firmware/ > > > `app` is C software (compiled with GCC) but `firmware` is for the > microcontroller (compiled with SDCC). > > I want a Makefile.am per directory so `app` and `firmware` are compiled when > *make* is triggered from the project root, everything (including the nested > Makefile.am files) works so far, except for this problem. > > So is there a way i should specify this when invoking configure? > > Thanks! >