1.SUFFIXES: .lo .to .tlo 2 3prefix=@prefix@ 4exec_prefix=@exec_prefix@ 5bindir=@bindir@ 6sbindir=@sbindir@ 7datarootdir=@datarootdir@ 8libdir=@libdir@ 9includedir=@includedir@ 10mandir=@mandir@ 11mansubdir=@mansubdir@ 12sysconfdir=@sysconfdir@ 13piddir=@piddir@ 14srcdir=@srcdir@ 15top_srcdir=@top_srcdir@ 16buildtoolsdir=$(top_srcdir)/buildtools 17host=@host@ 18 19DESTDIR= 20VPATH=@srcdir@ $(top_srcdir)/daemon 21SPREAD_PROGRAM=@sbindir@/spread 22SP_MAJOR_VERSION=@SP_MAJOR_VERSION@ 23SP_MINOR_VERSION=@SP_MINOR_VERSION@ 24SP_PATCH_VERSION=@SP_PATCH_VERSION@ 25VERSION=@SP_MAJOR_VERSION@.@SP_MINOR_VERSION@.@SP_PATCH_VERSION@ 26 27#Shared Library version -- Must be changed upon each release 28#Rules: major -- inc for incompatible change 29# : minor -- inc for backwards compatible change (add new api, but not break or remove old one) 30# : bugfix -- inc for bugfix that is fully compatible 31 32LIBFULLVERSION=3.0.0 33LIBCOMPATVERSION=3.0 34LIBVERSION=3 35 36PATHS= 37 38CC=@CC@ 39LD=@LD@ 40 41# don't use debugging (asserts and dprintfs) (optional) 42NO_DEBUG = -DNDEBUG 43#flush defines 44DEFINES= $(NO_DEBUG) 45 46CFLAGS=@CFLAGS@ $(DEFINES) 47#libspread-util includes 48LIBSPREADUTIL_DIR=../libspread-util 49LIBSPREADUTIL_PATHS=-I$(LIBSPREADUTIL_DIR)/include -I$(top_srcdir)/libspread-util/include 50#stdutil includes 51FLUSH_INC_DIR = -I../stdutil/src -I$(top_srcdir)/stdutil/src -I$(srcdir) 52CPPFLAGS=-I$(top_srcdir)/daemon -I../daemon -I$(top_srcdir)/include $(FLUSH_INC_DIR) $(LIBSPREADUTIL_PATHS) @CPPFLAGS@ $(PATHS) @DEFS@ 53LDFLAGS=@LDFLAGS@ 54LIBS=@LIBS@ 55THLDFLAGS=@THLDFLAGS@ 56THLIBS=@THLIBS@ 57AR=@AR@ 58LEX=@LEX@ 59SHCC=@SHCC@ 60SHLD=@SHLD@ 61SHCFLAGS=@SHCFLAGS@ $(DEFINES) 62SHCPPFLAGS=@SHCPPFLAGS@ -I$(top_srcdir)/daemon -I../daemon -I$(top_srcdir)/include $(FLUSH_INC_DIR) $(LIBSPREADUTIL_PATHS) 63SHLDFLAGS=@SHLDFLAGS@ 64SHLIBS=@SHLIBS@ 65SHLDOPTION=@SHLDOPTION@ 66SHLDNAME=@SHLDNAME@ 67SHLDCONVERTSTATIC=@SHLDCONVERTSTATIC@ 68SHLDCONVERTSTATICEND=@SHLDCONVERTSTATICEND@ 69RANLIB=@RANLIB@ 70INSTALL=@INSTALL@ 71SOFTLINK=@LN_S@ 72PERL=@PERL@ 73ENT=@ENT@ 74EXEEXT=@EXEEXT@ 75 76SP_OBJ_DIR=../daemon 77 78TARGETS=libspread-core.a libtspread-core.a libspread.a @LIBSPSO@ @LIBSPCORESO@ @LIBTSPCORESO@ 79 80LIBSP_OBJS= sp.o 81 82LIBSP_SHOBJS= sp.lo 83 84LIBTSP_OBJS= sp.to 85 86LIBTSP_SHOBJS= sp.tlo 87 88LIBTFL_OBJS= fl.to scatp.to sp.to 89 90LIBTFL_SHOBJS= fl.tlo scatp.tlo sp.tlo 91 92# A bit of a hack to grab the -fPIC threaded object files to merge into the shared spread library 93# since the stdutil.so cannot be merged, and the stdutil.a is not compiled -fPIC 94# Can be fixed correctly if stdutil generates incremental shared library versions 95STDUTIL_DIR=../stdutil/src 96 97SHARED_STDUTIL= $(STDUTIL_DIR)/stdarr.lto $(STDUTIL_DIR)/stdcarr.lto $(STDUTIL_DIR)/stddll.lto $(STDUTIL_DIR)/stderror.lto $(STDUTIL_DIR)/stdfd.lto $(STDUTIL_DIR)/stdhash.lto $(STDUTIL_DIR)/stdit.lto $(STDUTIL_DIR)/stdskl.lto $(STDUTIL_DIR)/stdthread.lto $(STDUTIL_DIR)/stdtime.lto $(STDUTIL_DIR)/stdutil.lto 98 99all: $(TARGETS) 100 101.c.o: 102 $(CC) $(CFLAGS) $(CPPFLAGS) -c $< 103 104.c.to: 105 $(CC) $(CFLAGS) $(CPPFLAGS) -D_REENTRANT -c $< -o $*.to 106 107.c.lo: 108 $(SHCC) $(SHCFLAGS) $(SHCPPFLAGS) -c $< -o $*.lo 109 110.c.tlo: 111 $(SHCC) $(SHCFLAGS) $(SHCPPFLAGS) -D_REENTRANT -c $< -o $*.tlo 112 113none: 114 @echo "Skipping shared library creation." 115 116install-none: 117 @echo "Skipping shared library installation." 118 119# libspread-core is the core spread library without Flush or Stdutil 120libspread-core.a: $(LIBSP_OBJS) $(LIBSPREADUTIL_DIR)/lib/libspread-util.a 121 $(AR) rv $@ $(LIBSP_OBJS) 122 $(AR) x $(LIBSPREADUTIL_DIR)/lib/libspread-util.a 123 $(AR) rv $@ alarm.o data_link.o memory.o events.o 124 $(RANLIB) $@ 125 126libspread-core.dylib: $(LIBSP_SHOBJS) $(LIBSPREADUTIL_DIR)/lib/libspread-util.sa 127 $(SHLD) -o libspread-core.$(LIBFULLVERSION).dylib $(LIBSP_SHOBJS) $(SHLDFLAGS) $(SHLDCONVERTSTATIC) $(LIBSPREADUTIL_DIR)/lib/libspread-util.sa $(SHLDCONVERTSTATICEND) $(SHLIBS) $(SHLDNAME)libspread-core.$(LIBVERSION).dylib -current_version $(LIBFULLVERSION) -compatibility_version $(LIBCOMPATVERSION) 128 $(SOFTLINK) -f libspread-core.$(LIBFULLVERSION).dylib $@ 129 130install-libspread-core.dylib: libspread-core.dylib 131 $(INSTALL) -m 0755 libspread-core.$(LIBFULLVERSION).dylib $(DESTDIR)$(libdir)/libspread-core.$(LIBFULLVERSION).dylib 132 (cd $(DESTDIR)$(libdir); \ 133 $(SOFTLINK) -f libspread-core.$(LIBFULLVERSION).dylib libspread-core.dylib; \ 134 $(SOFTLINK) -f libspread-core.$(LIBFULLVERSION).dylib libspread-core.$(LIBVERSION).dylib; \ 135 install_name_tool -id $(DESTDIR)$(libdir)/libspread-core.$(LIBVERSION).dylib $(DESTDIR)$(libdir)/libspread-core.$(LIBFULLVERSION).dylib \ 136 ) 137 138libspread-core.so: $(LIBSP_SHOBJS) $(LIBSPREADUTIL_DIR)/lib/libspread-util.sa 139 $(SHLD) -o $@ $(LIBSP_SHOBJS) $(SHLDFLAGS) $(SHLDCONVERTSTATIC) $(LIBSPREADUTIL_DIR)/lib/libspread-util.sa $(SHLDCONVERTSTATICEND) $(SHLIBS) $(SHLDOPTION)$(SHLDNAME)$@.$(LIBVERSION) 140 141install-libspread-core.so: libspread-core.so 142 $(INSTALL) -m 0755 libspread-core.so $(DESTDIR)$(libdir)/libspread-core.so.$(LIBFULLVERSION) 143 (cd $(DESTDIR)$(libdir); \ 144 $(SOFTLINK) -f libspread-core.so.$(LIBFULLVERSION) libspread-core.so; \ 145 $(SOFTLINK) -f libspread-core.so.$(LIBFULLVERSION) libspread-core.so.$(LIBVERSION) \ 146 ) 147 148libtspread-core.a: $(LIBTSP_OBJS) $(LIBSPREADUTIL_DIR)/lib/libspread-util.a 149 $(AR) rv $@ $(LIBTSP_OBJS) 150 $(AR) x $(LIBSPREADUTIL_DIR)/lib/libspread-util.a 151 $(AR) rv $@ alarm.o data_link.o memory.o events.o 152 $(RANLIB) $@ 153 154libtspread-core.dylib: $(LIBTSP_SHOBJS) $(LIBSPREADUTIL_DIR)/lib/libspread-util.sa 155 $(SHLD) -o libtspread-core.$(LIBFULLVERSION).dylib $(LIBTSP_SHOBJS) $(SHLDFLAGS) $(SHLDCONVERTSTATIC) $(LIBSPREADUTIL_DIR)/lib/libspread-util.sa $(SHLDCONVERTSTATICEND) $(SHLIBS) $(THLIBS) $(SHLDNAME)libtspread-core.$(LIBVERSION).dylib -current_version $(LIBFULLVERSION) -compatibility_version $(LIBCOMPATVERSION) 156 $(SOFTLINK) -f libtspread-core.$(LIBFULLVERSION).dylib $@ 157 158install-libtspread-core.dylib: libtspread-core.dylib 159 $(INSTALL) -m 0755 libtspread-core.$(LIBFULLVERSION).dylib $(DESTDIR)$(libdir)/libtspread-core.$(LIBFULLVERSION).dylib 160 (cd $(DESTDIR)$(libdir); \ 161 $(SOFTLINK) -f libtspread-core.$(LIBFULLVERSION).dylib libtspread-core.dylib; \ 162 $(SOFTLINK) -f libtspread-core.$(LIBFULLVERSION).dylib libtspread-core.$(LIBVERSION).dylib; \ 163 install_name_tool -id $(DESTDIR)$(libdir)/libtspread-core.$(LIBVERSION).dylib $(DESTDIR)$(libdir)/libtspread-core.$(LIBFULLVERSION).dylib \ 164 ) 165 166libtspread-core.so: $(LIBTSP_SHOBJS) $(LIBSPREADUTIL_DIR)/lib/libspread-util.sa 167 $(SHLD) -o $@ $(LIBTSP_SHOBJS) $(SHLDFLAGS) $(SHLDCONVERTSTATIC) $(LIBSPREADUTIL_DIR)/lib/libspread-util.sa $(SHLDCONVERTSTATICEND) $(SHLIBS) $(THLIBS) $(SHLDOPTION)$(SHLDNAME)$@.$(LIBVERSION) 168 169install-libtspread-core.so: libtspread-core.so 170 $(INSTALL) -m 0755 libtspread-core.so $(DESTDIR)$(libdir)/libtspread-core.so.$(LIBFULLVERSION) 171 (cd $(DESTDIR)$(libdir); \ 172 $(SOFTLINK) -f libtspread-core.so.$(LIBFULLVERSION) libtspread-core.so; \ 173 $(SOFTLINK) -f libtspread-core.so.$(LIBFULLVERSION) libtspread-core.so.$(LIBVERSION) \ 174 ) 175 176# Full Spread library with Fl_, SP_, and support modules linked in 177libspread.a: $(LIBTFL_OBJS) ../stdutil/lib/libstdutil-threaded-release.a $(LIBSPREADUTIL_DIR)/lib/libspread-util.a 178 $(AR) rv $@ $(LIBTFL_OBJS) 179 $(AR) x ../stdutil/lib/libstdutil-threaded-release.a 180 $(AR) rv $@ std*.to 181 $(AR) x $(LIBSPREADUTIL_DIR)/lib/libspread-util.a 182 $(AR) rv $@ alarm.o data_link.o memory.o events.o 183 $(RANLIB) $@ 184 185libspread.dylib: $(LIBTFL_SHOBJS) $(LIBSPREADUTIL_DIR)/lib/libspread-util.sa 186 $(SHLD) -o libspread.$(LIBFULLVERSION).dylib $(LIBTFL_SHOBJS) $(SHLDFLAGS) $(SHLDCONVERTSTATIC) ../stdutil/lib/libstdutil-threaded-release.a $(LIBSPREADUTIL_DIR)/lib/libspread-util.sa $(SHLDCONVERTSTATICEND) $(SHLIBS) $(THLIBS) $(SHLDNAME)libspread.$(LIBVERSION).dylib -current_version $(LIBFULLVERSION) -compatibility_version $(LIBCOMPATVERSION) 187 $(SOFTLINK) -f libspread.$(LIBFULLVERSION).dylib $@ 188 189install-libspread.dylib: libspread.dylib 190 $(INSTALL) -m 0755 libspread.$(LIBFULLVERSION).dylib $(DESTDIR)$(libdir)/libspread.$(LIBFULLVERSION).dylib 191 (cd $(DESTDIR)$(libdir); \ 192 $(SOFTLINK) -f libspread.$(LIBFULLVERSION).dylib libspread.dylib; \ 193 $(SOFTLINK) -f libspread.$(LIBFULLVERSION).dylib libspread.$(LIBVERSION).dylib; \ 194 install_name_tool -id $(DESTDIR)$(libdir)/libspread.$(LIBVERSION).dylib $(DESTDIR)$(libdir)/libspread.$(LIBFULLVERSION).dylib \ 195 ) 196 197libspread.so: $(LIBTFL_SHOBJS) $(LIBSPREADUTIL_DIR)/lib/libspread-util.sa 198 $(SHLD) -o $@ $(LIBTFL_SHOBJS) $(SHLDFLAGS) $(SHARED_STDUTIL) $(SHLDCONVERTSTATIC) $(LIBSPREADUTIL_DIR)/lib/libspread-util.sa $(SHLDCONVERTSTATICEND) $(SHLIBS) $(THLIBS) $(SHLDOPTION)$(SHLDNAME)$@.$(LIBVERSION) 199 200install-libspread.so: libspread.so 201 $(INSTALL) -m 0755 libspread.so $(DESTDIR)$(libdir)/libspread.so.$(LIBFULLVERSION) 202 (cd $(DESTDIR)$(libdir); \ 203 $(SOFTLINK) -f libspread.so.$(LIBFULLVERSION) libspread.so; \ 204 $(SOFTLINK) -f libspread.so.$(LIBFULLVERSION) libspread.so.$(LIBVERSION); \ 205 ) 206 207clean: 208 rm -f *.lo *.tlo *.to *.o *.a *.dylib *.so $(TARGETS) 209 rm -f core 210 rm -rf autom4te.cache 211 rm -rf ../lib/$(host) 212 213distclean: clean 214 rm -f Makefile config.status *~ 215 216binrelease: $(TARGETS) 217 $(buildtoolsdir)/mkinstalldirs ../lib/$(host) 218 $(INSTALL) -m 644 libspread.a ../lib/$(host)/libspread.a 219 $(INSTALL) -m 644 libspread-core.a ../lib/$(host)/libspread-core.a 220 $(INSTALL) -m 644 libtspread-core.a ../lib/$(host)/libtspread-core.a 221ifeq (@LIBSPSO@, libspread.so) 222 $(INSTALL) -m 755 libspread.so ../lib/$(host)/libspread.so.$(LIBFULLVERSION) 223 $(INSTALL) -m 755 libspread-core.so ../lib/$(host)/libspread-core.so.$(LIBFULLVERSION) 224 $(INSTALL) -m 755 libtspread-core.so ../lib/$(host)/libtspread-core.so.$(LIBFULLVERSION) 225endif 226ifeq (@LIBSPSO@, libspread.dylib) 227 $(INSTALL) -m 755 libspread.$(LIBFULLVERSION).dylib ../lib/$(host)/libspread.$(LIBFULLVERSION).dylib 228 $(INSTALL) -m 755 libspread-core.$(LIBFULLVERSION).dylib ../lib/$(host)/libspread-core.$(LIBFULLVERSION).dylib 229 $(INSTALL) -m 755 libtspread-core.$(LIBFULLVERSION).dylib ../lib/$(host)/libtspread-core.$(LIBFULLVERSION).dylib 230endif 231 232install: $(TARGETS) install-files install-@LIBSPSO@ install-@LIBSPCORESO@ install-@LIBTSPCORESO@ 233 234install-files: 235 $(buildtoolsdir)/mkinstalldirs $(DESTDIR)$(libdir) 236 $(buildtoolsdir)/mkinstalldirs $(DESTDIR)$(includedir) 237 $(INSTALL) -m 644 libspread.a $(DESTDIR)$(libdir)/libspread.a 238 $(INSTALL) -m 644 libspread-core.a $(DESTDIR)$(libdir)/libspread-core.a 239 $(INSTALL) -m 644 libtspread-core.a $(DESTDIR)$(libdir)/libtspread-core.a 240 $(INSTALL) -m 644 $(top_srcdir)/include/sp.h $(DESTDIR)$(includedir)/sp.h 241 $(INSTALL) -m 644 $(top_srcdir)/include/sp_func.h $(DESTDIR)$(includedir)/sp_func.h 242 $(INSTALL) -m 644 $(top_srcdir)/include/sp_events.h $(DESTDIR)$(includedir)/sp_events.h 243 $(INSTALL) -m 644 $(top_srcdir)/include/fl.h $(DESTDIR)$(includedir)/fl.h 244 245uninstallall: uninstall 246 -rmdir $(DESTDIR)$(libdir) 247 248uninstall: 249 -rm -f $(DESTDIR)$(libdir)/libspread.a 250 -rm -f $(DESTDIR)$(libdir)/libspread-core.a 251 -rm -f $(DESTDIR)$(libdir)/libtspread-core.a 252 -rm -f $(DESTDIR)$(libdir)/@LIBSPSO@ 253 -rm -f $(DESTDIR)$(libdir)/@LIBSPCORESO@ 254 -rm -f $(DESTDIR)$(libdir)/@LIBTSPCORESO@ 255 -rm -f $(DESTDIR)$(includedir)/sp.h 256 -rm -f $(DESTDIR)$(includedir)/sp_func.h 257 -rm -f $(DESTDIR)$(includedir)/sp_events.h 258 -rm -f $(DESTDIR)$(includedir)/fl.h 259