##// END OF EJS Templates
Generic lib clean target bug fixed
jeandet@pc-de-jeandet3.lab-lpp.local -
r17:24654bf85fa1 default
parent child
Show More
@@ -0,0 +1,101
1 /*------------------------------------------------------------------------------
2 -- This file is a part of the libuc, microcontroler library
3 -- Copyright (C) 2012, Alexis Jeandet
4 --
5 -- This program is free software; you can redistribute it and/or modify
6 -- it under the terms of the GNU General Public License as published by
7 -- the Free Software Foundation; either version 3 of the License, or
8 -- (at your option) any later version.
9 --
10 -- This program is distributed in the hope that it will be useful,
11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 -- GNU General Public License for more details.
14 --
15 -- You should have received a copy of the GNU General Public License
16 -- along with this program; if not, write to the Free Software
17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 -------------------------------------------------------------------------------
19 -- Author : Alexis Jeandet
20 -- Mail : alexis.jeandet@gmail.com
21 -------------------------------------------------------------------------------*/
22 #ifndef UART_H
23 #define UART_H
24 #include <stdint.h>
25 #include <uhandle.h>
26
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30
31
32 typedef struct uart_str uart_t;
33
34 struct uart_str{
35 void* _dev;
36 int cfg;
37 int speed;
38 };
39
40 typedef enum
41 {
42 uartparitynone = 0x1,
43 uartparityeven = 0x2,
44 uartparityodd = 0x3
45 }uartparity_t;
46
47 #define UARTPARITYMASK 0x3
48
49 typedef enum
50 {
51 uart7bits = 0x4,
52 uart8bits = 0x8,
53 uart9bits = 0xC
54 }uartbits_t;
55
56 #define UARTBITSMASK 0xC
57
58
59 typedef enum
60 {
61 uarthalfstop = 0x10,
62 uartonestop = 0x20,
63 uartonehalfstop = 0x30,
64 uarttwostop = 0x40
65 }uartstopbits_t;
66
67 #define UARTSTOPBITSMASK 0x70
68
69 extern int uartopen(int,uart_t*);
70 extern int uartclose(uart_t*);
71 extern int uartenable(uart_t*);
72 extern int uartdisable(uart_t*);
73 extern int uartsetconfig(uart_t*);
74 extern int uartsetspeed(uart_t*,int);
75 extern int uartsetparity(uart_t*,uartparity_t);
76 extern int uartsetdatabits(uart_t*,uartbits_t);
77 extern int uartsetstopbits(uart_t*,uartstopbits_t);
78 extern int uartputc(uart_t*,char);
79 extern char uartgetc(uart_t*);
80 extern int uartputs(uart_t*,char*);
81 extern int uartgets(uart_t*,char*);
82 extern int uartputnc(uart_t*,char*,int);
83 extern int uartgetnc(uart_t*,char*,int);
84 extern int uartavailiabledata(uart_t*);
85
86 #ifdef __cplusplus
87 }
88 #endif
89 #endif //GPIO_H
90
91
92
93
94
95
96
97
98
99
100
101
@@ -1,174 +1,178
1 #!/bin/bash
1 #!/bin/bash
2 #/*------------------------------------------------------------------------------
2 #/*------------------------------------------------------------------------------
3 #-- This file is a part of the libuc, microcontroler library
3 #-- This file is a part of the libuc, microcontroler library
4 #-- Copyright (C) 2011, Alexis Jeandet
4 #-- Copyright (C) 2011, Alexis Jeandet
5 #--
5 #--
6 #-- This program is free software; you can redistribute it and/or modify
6 #-- This program is free software; you can redistribute it and/or modify
7 #-- it under the terms of the GNU General Public License as published by
7 #-- it under the terms of the GNU General Public License as published by
8 #-- the Free Software Foundation; either version 3 of the License, or
8 #-- the Free Software Foundation; either version 3 of the License, or
9 #-- (at your option) any later version.
9 #-- (at your option) any later version.
10 #--
10 #--
11 #-- This program is distributed in the hope that it will be useful,
11 #-- This program is distributed in the hope that it will be useful,
12 #-- but WITHOUT ANY WARRANTY; without even the implied warranty of
12 #-- but WITHOUT ANY WARRANTY; without even the implied warranty of
13 #-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 #-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 #-- GNU General Public License for more details.
14 #-- GNU General Public License for more details.
15 #--
15 #--
16 #-- You should have received a copy of the GNU General Public License
16 #-- You should have received a copy of the GNU General Public License
17 #-- along with this program; if not, write to the Free Software
17 #-- along with this program; if not, write to the Free Software
18 #-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 #-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 #-------------------------------------------------------------------------------
19 #-------------------------------------------------------------------------------
20 #-- Author : Alexis Jeandet
20 #-- Author : Alexis Jeandet
21 #-- Mail : alexis.jeandet@gmail.com
21 #-- Mail : alexis.jeandet@gmail.com
22 #-------------------------------------------------------------------------------*/
22 #-------------------------------------------------------------------------------*/
23
23
24 function template-run {
24 function template-run {
25 Targets $PROJECTFILE
25 Targets $PROJECTFILE
26 if [ -z "$TARGETS" ] ; then
26 if [ -z "$TARGETS" ] ; then
27 echo "Single Target"
27 echo "Single Target"
28 Target $PROJECTFILE
28 Target $PROJECTFILE
29 Arch $PROJECTFILE
29 Arch $PROJECTFILE
30 Objdir $PROJECTFILE
30 Objdir $PROJECTFILE
31 Bindir $PROJECTFILE
31 Bindir $PROJECTFILE
32 Libs_Inc $PROJECTFILE
32 Libs_Inc $PROJECTFILE
33 Libs_Link $PROJECTFILE
33 Libs_Link $PROJECTFILE
34 HeadersInstallPath $PROJECTFILE
34 HeadersInstallPath $PROJECTFILE
35 TargetInstallPath $PROJECTFILE
35 TargetInstallPath $PROJECTFILE
36 getBSP $PROJECTFILE
36 getBSP $PROJECTFILE
37 ExtractCFLAGS $PROJECTFILE
37 ExtractCFLAGS $PROJECTFILE
38 ExtractLDFLAGS $PROJECTFILE
38 ExtractLDFLAGS $PROJECTFILE
39 ExtractODFLAGS $PROJECTFILE
39 ExtractODFLAGS $PROJECTFILE
40 echo "Current BSP is $BSP"
40 echo "Current BSP is $BSP"
41 echo $SRCFILES >> Makefile
41 echo $SRCFILES >> Makefile
42 getFilesList $PROJECTFILE HEADERS >> Makefile
42 getFilesList $PROJECTFILE HEADERS >> Makefile
43 getFilesList $PROJECTFILE SOURCES | sed 's/SOURCES/LIBSOURCES/' >> Makefile
43 getFilesList $PROJECTFILE SOURCES | sed 's/SOURCES/LIBSOURCES/' >> Makefile
44
44
45 echo "========================================================================="
45 echo "========================================================================="
46 echo " M A K E F I L E G E N E R A T I O N "
46 echo " M A K E F I L E G E N E R A T I O N "
47 echo "-------------------------------------------------------------------------"
47 echo "-------------------------------------------------------------------------"
48 echo " Template = library "
48 echo " Template = library "
49 echo " Architecture = $ARCH "
49 echo " Architecture = $ARCH "
50 echo " Output file = $TARGET "
50 echo " Output file = $TARGET "
51 echo "========================================================================="
51 echo "========================================================================="
52 echo ""
52 echo ""
53 echo " Start Writing Makefile ..."
53 echo " Start Writing Makefile ..."
54 echo "OBJDIR = $OBJDIR" >> Makefile
54 echo "OBJDIR = $OBJDIR" >> Makefile
55 echo "BINDIR = $BINDIR" >> Makefile
55 echo "BINDIR = $BINDIR" >> Makefile
56 echo 'OBJECTFILES = $(LIBSOURCES:.c=.o)'>> Makefile
56 echo 'OBJECTFILES = $(LIBSOURCES:.c=.o)'>> Makefile
57 echo 'OBJECTFILES := $(addprefix $(OBJDIR)/,$(OBJECTFILES))'>> Makefile
57 echo 'OBJECTFILES := $(addprefix $(OBJDIR)/,$(OBJECTFILES))'>> Makefile
58 echo "ARCH = $ARCH" >> Makefile
58 echo "ARCH = $ARCH" >> Makefile
59 echo "ARCHFOLDER = "'$(LIBUC)'"/rules/$ARCH" >> Makefile
59 echo "ARCHFOLDER = "'$(LIBUC)'"/rules/$ARCH" >> Makefile
60 echo "TARGET=$TARGET">> Makefile
60 echo "TARGET=$TARGET">> Makefile
61 echo "LIBUC_INCLUDES=$INCLUDES">> Makefile
61 echo "LIBUC_INCLUDES=$INCLUDES">> Makefile
62 echo "LIBUC_LIBRARIES=$LIBRARIES">> Makefile
62 echo "LIBUC_LIBRARIES=$LIBRARIES">> Makefile
63 echo "TARGETINSTALLPATH=$TARGETINSTALLPATH">> Makefile
63 echo "TARGETINSTALLPATH=$TARGETINSTALLPATH">> Makefile
64 echo "HEADERSINSTALLPATH=$HEADERSINSTALLPATH">> Makefile
64 echo "HEADERSINSTALLPATH=$HEADERSINSTALLPATH">> Makefile
65 echo "BSP=$BSP">> Makefile
65 echo "BSP=$BSP">> Makefile
66 echo 'include $(ARCHFOLDER)/rules.mk' >> Makefile
66 echo 'include $(ARCHFOLDER)/rules.mk' >> Makefile
67 echo "$CFLAGS" >> Makefile
67 echo "$CFLAGS" >> Makefile
68 echo "$LDFLAGS" >> Makefile
68 echo "$LDFLAGS" >> Makefile
69 echo "$ODFLAGS" >> Makefile
69 echo "$ODFLAGS" >> Makefile
70 echo '' >> Makefile
70 echo '' >> Makefile
71 echo 'all:lib' >> Makefile
71 echo 'all:lib' >> Makefile
72 echo " @echo Code compiled" >> Makefile
72 echo " @echo Code compiled" >> Makefile
73 echo '' >> Makefile
73 echo '' >> Makefile
74 echo 'libclean:' >> Makefile
74 echo 'libclean:' >> Makefile
75 echo ' rm -f $(TARGETINSTALLPATH)/*.a' >> Makefile
75 echo ' rm -f $(TARGETINSTALLPATH)/*.a' >> Makefile
76 echo ' rm -f $(HEADERSINSTALLPATH)/*.h' >> Makefile
76 echo ' rm -f $(HEADERSINSTALLPATH)/*.h' >> Makefile
77 echo " Makefile writing finished"
77 echo " Makefile writing finished"
78 echo ""
78 echo ""
79 echo "========================================================================="
79 echo "========================================================================="
80 echo ""
80 echo ""
81
81
82 else
82 else
83 echo "Multi targets"
83 echo "Multi targets"
84 for ITEMS in $TARGETS
84 for ITEMS in $TARGETS
85 do
85 do
86 echo 'PROJECTDIR = `pwd`'> $ITEMS.mk
86 echo 'PROJECTDIR = `pwd`'> $ITEMS.mk
87 echo "LIBUC = $libuc2" >> $ITEMS.mk
87 echo "LIBUC = $libuc2" >> $ITEMS.mk
88 Target $PROJECTFILE $ITEMS
88 Target $PROJECTFILE $ITEMS
89 Arch $PROJECTFILE $ITEMS
89 Arch $PROJECTFILE $ITEMS
90 Objdir $PROJECTFILE
90 Objdir $PROJECTFILE
91 Bindir $PROJECTFILE
91 Bindir $PROJECTFILE
92 Libs_Inc $PROJECTFILE $ITEMS
92 Libs_Inc $PROJECTFILE $ITEMS
93 Libs_Link $PROJECTFILE $ITEMS
93 Libs_Link $PROJECTFILE $ITEMS
94 HeadersInstallPath $PROJECTFILE $ITEMS
94 HeadersInstallPath $PROJECTFILE $ITEMS
95 TargetInstallPath $PROJECTFILE $ITEMS
95 TargetInstallPath $PROJECTFILE $ITEMS
96 getBSP $PROJECTFILE $ITEMS
96 getBSP $PROJECTFILE $ITEMS
97 ExtractCFLAGS $PROJECTFILE $ITEMS
97 ExtractCFLAGS $PROJECTFILE $ITEMS
98 ExtractLDFLAGS $PROJECTFILE $ITEMS
98 ExtractLDFLAGS $PROJECTFILE $ITEMS
99 ExtractODFLAGS $PROJECTFILE $ITEMS
99 ExtractODFLAGS $PROJECTFILE $ITEMS
100 echo "Current BSP is $BSP"
100 echo "Current BSP is $BSP"
101 echo $SRCFILES >> $ITEMS.mk
101 echo $SRCFILES >> $ITEMS.mk
102 TEMP=`getFilesList $PROJECTFILE $ITEMS.HEADERS`
102 TEMP=`getFilesList $PROJECTFILE $ITEMS.HEADERS`
103 if [ -z "$TEMP" ] ; then
103 if [ -z "$TEMP" ] ; then
104 getFilesList $PROJECTFILE '*'.HEADERS | sed 's/*\.'// >> $ITEMS.mk
104 getFilesList $PROJECTFILE '*'.HEADERS | sed 's/*\.'// >> $ITEMS.mk
105 else
105 else
106 getFilesList $PROJECTFILE $ITEMS.HEADERS | sed s/$ITEMS'\.'// >> $ITEMS.mk
106 getFilesList $PROJECTFILE $ITEMS.HEADERS | sed s/$ITEMS'\.'// >> $ITEMS.mk
107 fi
107 fi
108 TEMP=`getFilesList $PROJECTFILE $ITEMS.SOURCES`
108 TEMP=`getFilesList $PROJECTFILE $ITEMS.SOURCES`
109 if [ -z "$TEMP" ] ; then
109 if [ -z "$TEMP" ] ; then
110 getFilesList $PROJECTFILE '*'.SOURCES | sed 's/*\.'SOURCES/LIBSOURCES/ >> $ITEMS.mk
110 getFilesList $PROJECTFILE '*'.SOURCES | sed 's/*\.'SOURCES/LIBSOURCES/ >> $ITEMS.mk
111 else
111 else
112 getFilesList $PROJECTFILE $ITEMS.SOURCES | sed s/$ITEMS'\.'SOURCES/LIBSOURCES/ >> $ITEMS.mk
112 getFilesList $PROJECTFILE $ITEMS.SOURCES | sed s/$ITEMS'\.'SOURCES/LIBSOURCES/ >> $ITEMS.mk
113 fi
113 fi
114 echo "========================================================================="
114 echo "========================================================================="
115 echo " M A K E F I L E G E N E R A T I O N "
115 echo " M A K E F I L E G E N E R A T I O N "
116 echo "-------------------------------------------------------------------------"
116 echo "-------------------------------------------------------------------------"
117 echo " Template = library "
117 echo " Template = library "
118 echo " Architecture = $ARCH "
118 echo " Architecture = $ARCH "
119 echo " Output file = $TARGET "
119 echo " Output file = $TARGET "
120 echo "========================================================================="
120 echo "========================================================================="
121 echo ""
121 echo ""
122 echo " Start Writing Makefile ..."
122 echo " Start Writing Makefile ..."
123 echo "OBJDIR = $OBJDIR" >> $ITEMS.mk
123 echo "OBJDIR = $OBJDIR" >> $ITEMS.mk
124 echo "BINDIR = $BINDIR" >> $ITEMS.mk
124 echo "BINDIR = $BINDIR" >> $ITEMS.mk
125 echo 'OBJECTFILES = $(LIBSOURCES:.c=.o)'>> $ITEMS.mk
125 echo 'OBJECTFILES = $(LIBSOURCES:.c=.o)'>> $ITEMS.mk
126 echo 'OBJECTFILES := $(addprefix $(OBJDIR)/,$(OBJECTFILES))'>> $ITEMS.mk
126 echo 'OBJECTFILES := $(addprefix $(OBJDIR)/,$(OBJECTFILES))'>> $ITEMS.mk
127 echo "ARCH = $ARCH" >> $ITEMS.mk
127 echo "ARCH = $ARCH" >> $ITEMS.mk
128 echo "ARCHFOLDER = "'$(LIBUC)'"/rules/$ARCH" >> $ITEMS.mk
128 echo "ARCHFOLDER = "'$(LIBUC)'"/rules/$ARCH" >> $ITEMS.mk
129 echo "TARGET=$TARGET">> $ITEMS.mk
129 echo "TARGET=$TARGET">> $ITEMS.mk
130 echo "LIBUC_INCLUDES=$INCLUDES">> $ITEMS.mk
130 echo "LIBUC_INCLUDES=$INCLUDES">> $ITEMS.mk
131 echo "LIBUC_LIBRARIES=$LIBRARIES">> $ITEMS.mk
131 echo "LIBUC_LIBRARIES=$LIBRARIES">> $ITEMS.mk
132 echo "TARGETINSTALLPATH=$TARGETINSTALLPATH">> $ITEMS.mk
132 echo "TARGETINSTALLPATH=$TARGETINSTALLPATH">> $ITEMS.mk
133 echo "HEADERSINSTALLPATH=$HEADERSINSTALLPATH">> $ITEMS.mk
133 echo "HEADERSINSTALLPATH=$HEADERSINSTALLPATH">> $ITEMS.mk
134 echo "BSP=$BSP">> $ITEMS.mk
134 echo "BSP=$BSP">> $ITEMS.mk
135 echo 'include $(ARCHFOLDER)/rules.mk' >> $ITEMS.mk
135 echo 'include $(ARCHFOLDER)/rules.mk' >> $ITEMS.mk
136 echo "$CFLAGS" >> $ITEMS.mk
136 echo "$CFLAGS" >> $ITEMS.mk
137 echo "$LDFLAGS" >> $ITEMS.mk
137 echo "$LDFLAGS" >> $ITEMS.mk
138 echo "$ODFLAGS" >> $ITEMS.mk
138 echo "$ODFLAGS" >> $ITEMS.mk
139 echo '' >> $ITEMS.mk
139 echo '' >> $ITEMS.mk
140 echo 'all:lib' >> $ITEMS.mk
140 echo 'all:lib' >> $ITEMS.mk
141 echo " @echo Code compiled" >> $ITEMS.mk
141 echo " @echo Code compiled" >> $ITEMS.mk
142 echo '' >> $ITEMS.mk
142 echo '' >> $ITEMS.mk
143 echo 'libclean:' >> $ITEMS.mk
143 echo 'libclean:' >> $ITEMS.mk
144 echo ' rm -f $(TARGETINSTALLPATH)/*.a' >> $ITEMS.mk
144 echo ' rm -f $(TARGETINSTALLPATH)/*.a' >> $ITEMS.mk
145 if [ -z "$HEADERSINSTALLPATH" ] ; then
146 echo ""
147 else
145 echo ' rm -f $(HEADERSINSTALLPATH)/*.h' >> $ITEMS.mk
148 echo ' rm -f $(HEADERSINSTALLPATH)/*.h' >> $ITEMS.mk
149 fi
146 echo " Makefile writing finished"
150 echo " Makefile writing finished"
147 echo ""
151 echo ""
148 echo "========================================================================="
152 echo "========================================================================="
149 echo ""
153 echo ""
150 done
154 done
151 echo "" >> Makefile
155 echo "" >> Makefile
152 echo "all:" >> Makefile
156 echo "all:" >> Makefile
153 for ITEMS in $TARGETS
157 for ITEMS in $TARGETS
154 do
158 do
155 echo " make -f $ITEMS.mk" >> Makefile
159 echo " make -f $ITEMS.mk" >> Makefile
156 done
160 done
157 echo "" >> Makefile
161 echo "" >> Makefile
158 echo "clean:" >> Makefile
162 echo "clean:" >> Makefile
159 for ITEMS in $TARGETS
163 for ITEMS in $TARGETS
160 do
164 do
161 echo " make clean -f $ITEMS.mk" >> Makefile
165 echo " make clean -f $ITEMS.mk" >> Makefile
162 done
166 done
163 echo "" >> Makefile
167 echo "" >> Makefile
164 echo "distclean:" >> Makefile
168 echo "distclean:" >> Makefile
165 for ITEMS in $TARGETS
169 for ITEMS in $TARGETS
166 do
170 do
167 echo " make distclean -f $ITEMS.mk" >> Makefile
171 echo " make distclean -f $ITEMS.mk" >> Makefile
168 echo " rm -f $ITEMS.mk" >> Makefile
172 echo " rm -f $ITEMS.mk" >> Makefile
169 done
173 done
170 fi
174 fi
171
175
172
176
173 }
177 }
174
178
@@ -1,14 +1,14
1 TEMPLATE = lib
1 TEMPLATE = lib
2 ARCH = stm32f4-arm-none-eabi-gcc
2 ARCH = stm32f4-arm-none-eabi-gcc
3 TARGET = libgpio
3 TARGET = libgpio
4 TARGETINSTALLPATH = $(LIBUC_LIBS_DIR_GPIO)
4 TARGETINSTALLPATH = $(LIBUC_LIBS_DIR_GPIO)
5 HEADERSINSTALLPATH = $(LIBUC_INC_DIR_GPIO)
5 HEADERSINSTALLPATH =
6
6
7 LIBS += CORE UHANDLE STLIB
7 LIBS += CORE UHANDLE STLIB
8
8
9 SOURCES += gpio.c
9 SOURCES += gpio.c
10
10
11
11
12 HEADERS +=
12 HEADERS +=
13
13
14 INCLUDES += $(LIBUC_INC_DIR_GPIO)
14 INCLUDES += $(LIBUC_INC_DIR_GPIO)
@@ -1,14 +1,14
1 TEMPLATE = lib
1 TEMPLATE = lib
2 ARCH = stm32f4-arm-none-eabi-gcc
2 ARCH = stm32f4-arm-none-eabi-gcc
3 TARGET = libuart
3 TARGET = libuart
4 TARGETINSTALLPATH = $(LIBUC_LIBS_DIR_UART)
4 TARGETINSTALLPATH = $(LIBUC_LIBS_DIR_UART)
5 HEADERSINSTALLPATH = $(LIBUC_INC_DIR_UART)
5 HEADERSINSTALLPATH =
6
6
7 LIBS += UHANDLE STLIB
7 LIBS += UHANDLE STLIB
8
8
9 SOURCES += uart.c
9 SOURCES += uart.c
10
10
11
11
12 HEADERS +=
12 HEADERS +=
13 INCLUDES += $(LIBUC_INC_DIR_UART)
13 INCLUDES += $(LIBUC_INC_DIR_UART)
14
14
@@ -1,7 +1,7
1 TEMPLATE = dir
1 TEMPLATE = dir
2 SUBDIRS += STLIB CORE UART
2 SUBDIRS += STLIB CORE UART GPIO
3
3
4
4
5
5
6
6
7
7
1 NO CONTENT: file was removed
NO CONTENT: file was removed
1 NO CONTENT: file was removed
NO CONTENT: file was removed
1 NO CONTENT: file was removed
NO CONTENT: file was removed
This diff has been collapsed as it changes many lines, (566 lines changed) Show them Hide them
General Comments 0
You need to be logged in to leave comments. Login now