Commit 213abf41d479561b8190ca9c5975ace6c641404e

Authored by Perry Werneck
1 parent b7cb7b94

Atualizando Makefile.

Showing 1 changed file with 152 additions and 49 deletions   Show diff stats
@@ -24,91 +24,192 @@ @@ -24,91 +24,192 @@
24 # erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça) 24 # erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça)
25 # 25 #
26 26
27 -#---[ Configuration values ]--------------------------------------------------- 27 +#---[ Library configuration ]------------------------------------------------------------
28 28
29 -PACKAGE_NAME=@PACKAGE_NAME@  
30 -PACKAGE_VERSION=@PACKAGE_VERSION@  
31 -PACKAGE_LEVEL=@PACKAGE_LEVEL@  
32 -PACKAGE_TARNAME=@PACKAGE_TARNAME@  
33 -PACKAGE_DESCRIPTION=@PACKAGE_DESCRIPTION@  
34 -PLUGINS=@PLUGINS@ 29 +LIBNAME=@LIB3270_NAME@
35 30
36 -#---[ Paths ]------------------------------------------------------------------ 31 +SOURCES= \
  32 + $(wildcard src/lib3270/*.c) \
  33 + $(wildcard src/lib3270/@OSNAME@/*.c) \
  34 + $(wildcard src/lib3270/@OSNAME@/*.rc) \
  35 + $(BASEDIR)/.tmp/@DLLPREFIX@$(LIBNAME)/fallbacks.c
  36 +
  37 +#---[ Tools ]----------------------------------------------------------------------------
  38 +
  39 +CC=@CC@
  40 +HOST_CC=@HOST_CC@
  41 +LD=@CC@
  42 +LN_S=@LN_S@
  43 +MKDIR=@MKDIR_P@
  44 +INSTALL=@INSTALL@
  45 +INSTALL_DATA=@INSTALL_DATA@
  46 +INSTALL_PROGRAM=@INSTALL_PROGRAM@
  47 +
  48 +#---[ Paths ]----------------------------------------------------------------------------
37 49
38 prefix=@prefix@ 50 prefix=@prefix@
39 exec_prefix=@exec_prefix@ 51 exec_prefix=@exec_prefix@
40 bindir=@bindir@ 52 bindir=@bindir@
41 sbindir=@sbindir@ 53 sbindir=@sbindir@
42 libdir=@libdir@ 54 libdir=@libdir@
  55 +includedir=@includedir@
43 datarootdir=@datarootdir@ 56 datarootdir=@datarootdir@
44 -localedir=${datarootdir}/locale 57 +localedir=@localedir@
45 docdir=@docdir@ 58 docdir=@docdir@
46 sysconfdir=@sysconfdir@ 59 sysconfdir=@sysconfdir@
47 -mandir=@mandir@  
48 60
49 BASEDIR=@BASEDIR@ 61 BASEDIR=@BASEDIR@
50 62
51 -POTDIR=$(BASEDIR)/.pot  
52 -BINDIR=$(BASEDIR)/.bin 63 +OBJDIR=$(BASEDIR)/.obj/@DLLPREFIX@$(LIBNAME)
  64 +OBJDBG=$(OBJDIR)/Debug
  65 +OBJRLS=$(OBJDIR)/Release
  66 +
  67 +BINDIR=$(BASEDIR)/.bin/@DLLPREFIX@$(LIBNAME)
53 BINDBG=$(BINDIR)/Debug 68 BINDBG=$(BINDIR)/Debug
54 BINRLS=$(BINDIR)/Release 69 BINRLS=$(BINDIR)/Release
55 70
56 -#---[ Tools ]------------------------------------------------------------------ 71 +#---[ Rules ]----------------------------------------------------------------------------
57 72
58 -CC=@CC@  
59 -LD=@CC@  
60 -LN_S=@LN_S@  
61 -MKDIR=@MKDIR_P@  
62 -INSTALL=@INSTALL@  
63 -INSTALL_DATA=@INSTALL_DATA@  
64 -INSTALL_PROGRAM=@INSTALL_PROGRAM@ 73 +DEPENDS= \
  74 + Makefile \
  75 + src/include/*.h \
  76 + src/include/lib3270/*.h \
  77 + src/lib3270/*.h
  78 +
  79 +
  80 +CFLAGS= \
  81 + @CFLAGS@ \
  82 + -g \
  83 + -Isrc/include
  84 + -DBUILD_DATE=`date +%Y%m%d` \
  85 + @LIBSSL_CFLAGS@
  86 +
  87 +LIBS= \
  88 + @LIBS@ \
  89 + @LIBSSL_LIBS@
  90 +
  91 +#---[ Debug Rules ]----------------------------------------------------------------------
  92 +
  93 +$(OBJDBG)/%.o: \
  94 + %.c \
  95 + $(DEPENDS)
  96 +
  97 + @echo $< ...
  98 + @$(MKDIR) `dirname $@`
  99 + @$(CC) \
  100 + $(CFLAGS) \
  101 + -Wall -Wextra -fstack-check \
  102 + -DDEBUG=1 \
  103 + -DDATADIR=$(BASEDIR) \
  104 + -o $@ -c $<
  105 +
  106 +#---[ Release Rules ]--------------------------------------------------------------------
  107 +
  108 +$(OBJRLS)/%.o: \
  109 + %.c \
  110 + $(DEPENDS)
  111 +
  112 + @echo $< ...
  113 + @$(MKDIR) `dirname $@`
  114 + @$(CC) \
  115 + $(CFLAGS) \
  116 + -DNDEBUG=1 \
  117 + -DDATADIR=$(datarootdir)/pw3270 \
  118 + -o $@ -c $<
65 119
66 #---[ Release Targets ]------------------------------------------------------------------ 120 #---[ Release Targets ]------------------------------------------------------------------
67 121
68 all: \ 122 all: \
69 - $(BINRLS)/@DLLPREFIX@3270@DLLEXT@ \  
70 - $(BINRLS)/$(PACKAGE_TARNAME)@EXEEXT@ 123 + $(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@
71 124
72 Release: \ 125 Release: \
73 - $(BINRLS)/@DLLPREFIX@3270@DLLEXT@ \  
74 - $(BINRLS)/$(PACKAGE_TARNAME)@EXEEXT@ 126 + $(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@
75 127
  128 +$(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@: \
  129 + $(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@
76 130
77 -$(BINRLS)/@DLLPREFIX@3270@DLLEXT@: \  
78 - submodules/lib3270/* \  
79 - submodules/lib3270/src/lib3270/* \  
80 - submodules/lib3270/src/include/* 131 + @echo $< ...
  132 + @rm -f $@
  133 + @$(LN_S) \
  134 + @DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@ \
  135 + $@
81 136
82 - @$(MKDIR) `dirname $@`  
83 - $(MAKE) -C submodules/lib3270 Release 137 +$(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@: \
  138 + $(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@
84 139
85 - @cp ./submodules/lib3270/.bin/lib3270/Debug/* $(BINRLS) 140 + @rm -f $@
  141 + @$(LN_S) \
  142 + @DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
  143 + $@
86 144
87 -#---[ Debug Rules ]----------------------------------------------------------------------  
88 -  
89 -$(BINDBG)/@DLLPREFIX@3270@DLLEXT@: \  
90 - submodules/lib3270/* \  
91 - submodules/lib3270/src/lib3270/* \  
92 - submodules/lib3270/src/include/* 145 +$(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@: \
  146 + $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o)
93 147
94 @$(MKDIR) `dirname $@` 148 @$(MKDIR) `dirname $@`
95 - @$(MAKE) -C submodules/lib3270 Debug 149 + @echo $< ...
  150 + @$(LD) \
  151 + -shared -Wl,-soname,$(@F) \
  152 + -o $@ \
  153 + $(LDFLAGS) \
  154 + $(LIBS)
  155 +
  156 +#---[ Misc Targets ]---------------------------------------------------------------------
  157 +
  158 +src/lib3270/version.c: \
  159 + Makefile
96 160
97 - @cp ./submodules/lib3270/.bin/lib3270/Debug/* $(BINDBG) 161 + @echo $(basename $@) ...
  162 + @chmod +x src/lib3270/mkversion.sh
  163 + @./src/lib3270/mkversion.sh
98 164
99 -$(BINDBG)/%@EXEEXT@: \  
100 - $(BINDBG)/@DLLPREFIX@3270@DLLEXT@ \  
101 - src/% \  
102 - src/%/* 165 +$(BASEDIR)/.tmp/@DLLPREFIX@$(LIBNAME)/fallbacks.c: \
  166 + X3270.xad \
  167 + $(wildcard src/mkfb/*.c)
103 168
104 - @make -C src/$(notdir $(basename $@)) $@ 169 + @$(MKDIR) `dirname $@`
  170 + @echo $< ...
  171 + $(HOST_CC) -g -o $(BINDIR)/mkfb@EXEEXT@ $(wildcard src/mkfb/*.c)
  172 + $(BINDIR)/mkfb@EXEEXT@ -c X3270.xad $@
  173 +
  174 +#---[ Install Targets ]------------------------------------------------------------------
105 175
106 176
107 #---[ Debug Targets ]-------------------------------------------------------------------- 177 #---[ Debug Targets ]--------------------------------------------------------------------
108 178
  179 +x: \
  180 + $(BASEDIR)/.tmp/@DLLPREFIX@$(LIBNAME)/fallbacks.c
  181 +
109 Debug: \ 182 Debug: \
110 - $(BINDBG)/@DLLPREFIX@3270@DLLEXT@ \  
111 - $(BINDBG)/$(PACKAGE_TARNAME)@EXEEXT@ 183 + $(BINDBG)/@DLLPREFIX@$(LIBNAME)@DLLEXT@
  184 +
  185 +$(BINDBG)/@DLLPREFIX@$(LIBNAME)@DLLEXT@: \
  186 + $(BINDBG)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@
  187 +
  188 + @echo $< ...
  189 + @rm -f $@
  190 + @$(LN_S) \
  191 + @DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@ \
  192 + $@
  193 +
  194 +$(BINDBG)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@: \
  195 + $(BINDBG)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@
  196 +
  197 + @rm -f $@
  198 + @$(LN_S) \
  199 + @DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
  200 + $@
  201 +
  202 +$(BINDBG)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@: \
  203 + $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o)
  204 +
  205 + @$(MKDIR) `dirname $@`
  206 + @echo $< ...
  207 + @$(LD) \
  208 + -shared -Wl,-soname,$(@F) \
  209 + -o $@ \
  210 + $(LDFLAGS) \
  211 + $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o) \
  212 + $(LIBS)
112 213
113 #---[ Clean Targets ]-------------------------------------------------------------------- 214 #---[ Clean Targets ]--------------------------------------------------------------------
114 215
@@ -116,18 +217,20 @@ clean: \ @@ -116,18 +217,20 @@ clean: \
116 cleanDebug \ 217 cleanDebug \
117 cleanRelease 218 cleanRelease
118 219
  220 + @rm -fr $(BASEDIR)/.tmp/@DLLPREFIX@$(LIBNAME)
  221 +
119 cleanDebug: 222 cleanDebug:
120 223
121 @rm -fr $(OBJDBG) 224 @rm -fr $(OBJDBG)
122 @rm -fr $(BINDBG) 225 @rm -fr $(BINDBG)
123 - @$(MAKE) -C submodules/lib3270 $@  
124 226
125 cleanRelease: 227 cleanRelease:
126 228
127 @rm -fr $(OBJRLS) 229 @rm -fr $(OBJRLS)
128 @rm -fr $(BINRLS) 230 @rm -fr $(BINRLS)
129 - @$(MAKE) -C submodules/lib3270 $@  
130 -  
131 231
  232 +clean: \
  233 + cleanDebug \
  234 + cleanRelease
132 235
133 236