Commit 213abf41d479561b8190ca9c5975ace6c641404e

Authored by Perry Werneck
1 parent b7cb7b94

Atualizando Makefile.

Showing 1 changed file with 152 additions and 49 deletions   Show diff stats
Makefile.in
... ... @@ -24,91 +24,192 @@
24 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 50 prefix=@prefix@
39 51 exec_prefix=@exec_prefix@
40 52 bindir=@bindir@
41 53 sbindir=@sbindir@
42 54 libdir=@libdir@
  55 +includedir=@includedir@
43 56 datarootdir=@datarootdir@
44   -localedir=${datarootdir}/locale
  57 +localedir=@localedir@
45 58 docdir=@docdir@
46 59 sysconfdir=@sysconfdir@
47   -mandir=@mandir@
48 60  
49 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 68 BINDBG=$(BINDIR)/Debug
54 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 120 #---[ Release Targets ]------------------------------------------------------------------
67 121  
68 122 all: \
69   - $(BINRLS)/@DLLPREFIX@3270@DLLEXT@ \
70   - $(BINRLS)/$(PACKAGE_TARNAME)@EXEEXT@
  123 + $(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@
71 124  
72 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 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 177 #---[ Debug Targets ]--------------------------------------------------------------------
108 178  
  179 +x: \
  180 + $(BASEDIR)/.tmp/@DLLPREFIX@$(LIBNAME)/fallbacks.c
  181 +
109 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 214 #---[ Clean Targets ]--------------------------------------------------------------------
114 215  
... ... @@ -116,18 +217,20 @@ clean: \
116 217 cleanDebug \
117 218 cleanRelease
118 219  
  220 + @rm -fr $(BASEDIR)/.tmp/@DLLPREFIX@$(LIBNAME)
  221 +
119 222 cleanDebug:
120 223  
121 224 @rm -fr $(OBJDBG)
122 225 @rm -fr $(BINDBG)
123   - @$(MAKE) -C submodules/lib3270 $@
124 226  
125 227 cleanRelease:
126 228  
127 229 @rm -fr $(OBJRLS)
128 230 @rm -fr $(BINRLS)
129   - @$(MAKE) -C submodules/lib3270 $@
130   -
131 231  
  232 +clean: \
  233 + cleanDebug \
  234 + cleanRelease
132 235  
133 236  
... ...