Improved user make scripts and fixing problem with .lib
Created by: kakila
I improved the compilation of the library. I think the only thing missing is the automatic detection of the path to mcc18, mplab, mplink and pk2cmd I had to change the Makefile.am files because the amazing linker mplink doesn't accept other library extensions than .lib (which is not POSIX standard) . I sent a pull request.
Detailed information below. This information was added to the README file
Requeriments
To use the Dwengo library to compile your programs and program your Dwengo board you need to have the Microchip propietary software tools mcc18, mplink and pk2cmd. If you also want to generate dwngo.lib from sources you need mplab as well.
In order for the script ./configure to work correctly, you have to define the following varibales :
- MCC_BIN The PATH wherein mcc18 and mplib can be found
- MCC_INCLUDE The PATH wherein p18f4550.h can be found
- PK2_BIN The PATH wherein pk2cmd can be found
You can do this before calling the configure script with commands like
export MCC_BIN=path/to/mcc18/folder export MCC_INCLUDE=path/to/p18f4550/folder export PK2_BIN=path/to/pk2cmd/folder
Compiling and Programming your projects
You will find the following three files in the folder ${prefix}/share/libdwengo
- common.mk Contains all the variables required to compile and program the board (this values are generated at configure time). Makefile.topprojdir : A file that can be placed in the folder containing all the project folders (common.mk should be placed there too) and renamed to Makefile Makefile.proj : A file that can be placed in the folder of each project and renamed to Makefile.
So a possible tree structure looks like
projects/
|-- common.mk
|-- Makefile # This was Makefile.topprojdir
|-- blinkingLEDS/
|-- blinkingLEDS.c
-- Makefile # This was Makefile.proj |-- newsTicker/ |-- newsTicker.c
-- Makefile # This was Makefile.proj
|-- usartCounter/
|-- usartCounter.c
-- Makefile # This was Makefile.proj |-- lightMeasurement/ |-- lightMeasurement.c
-- Makefile # This was Makefile.proj
|-- usartNewsticker/
|-- usartNewsticker.c
-- Makefile # This was Makefile.proj
-- usartEcho/
|-- usartEcho.c
`-- Makefile # This was Makefile.proj
The files provide, at top level, the commands make #defualts to make help make help make clean make all make PROJ=
all #(where is the folder name of one of the projects, explained in "make help") make PROJ= programInside each project folder they provide the same commands make #defaults to make all make clean make all make program
Compiling out of source tree
If you are compiling dwengo.lib from source, you may want to compile it outside of the foulder with the sources. Lets assume you have the sources at ~/libdwengo-version, to compile in a folder ~/libdwengo-build do the following
cd ~/libdwengo-version ./bootstrap.sh cd ~/libdwengo-build < export the required varibles here > ~/libdwengo-version/configure make
This will make the library inside the folder ~/libdwengo-build and keep ~/libdwengo-version clean.
Additionally, if you want to install to a local folder (recommended) call the configure script with the option --prefix=path/to/install If you do so, running
make install
will install the library at path/to/install/lib/libdwengo The header files will be in path/to/install/include/libdwengo And the files that help you compile your projects and program the board will be in path/to/install/share/libdwengo