1# See if we can cast the automake spell. -*-Makefile-*- 2# 3 4# 5AUTOMAKE_OPTIONS = no-dependencies 1.4 6 7EX_B_DIR=$(top_builddir)/examples 8EX_INST_DIR=$(libdir)/vstr-$(VERSION)/examples 9 10GEN_CFLAGS = -I../include -I../../include @CFLAGS@ @WARNS@ 11if USE_EX_STATIC_LIBS 12GEN_CFLAGS += -DCONF_FULL_STATIC=1 13endif 14 15GEN_LDLIBS = @LDFLAGS@ @LOCAL_EX_PROG_LIBS@ 16 17 18ex_cat_DEPENDENCIES = ex_utils.h 19ex_cat_CFLAGS = $(GEN_CFLAGS) 20ex_cat_LDADD = $(GEN_LDLIBS) 21 22ex_ccount_DEPENDENCIES = ex_utils.h 23ex_ccount_CFLAGS = $(GEN_CFLAGS) 24ex_ccount_LDADD = $(GEN_LDLIBS) 25 26ex_conf_SOURCES = conf.c ex_conf.c conf_inline.c 27ex_conf_DEPENDENCIES = conf.h ex_utils.h mk.h 28ex_conf_CFLAGS = $(GEN_CFLAGS) 29ex_conf_LDADD = $(GEN_LDLIBS) 30 31ex_hello_world_DEPENDENCIES = ex_utils.h 32ex_hello_world_CFLAGS = $(GEN_CFLAGS) 33ex_hello_world_LDADD = $(GEN_LDLIBS) 34 35ex_hello_world_s_DEPENDENCIES = ex_utils.h 36ex_hello_world_s_CFLAGS = $(GEN_CFLAGS) 37ex_hello_world_s_LDADD = $(GEN_LDLIBS) 38 39ex_hello_world_m_DEPENDENCIES = ex_utils.h 40ex_hello_world_m_CFLAGS = $(GEN_CFLAGS) 41ex_hello_world_m_LDADD = $(GEN_LDLIBS) 42 43ex_hello_world_x_DEPENDENCIES = ex_utils.h 44ex_hello_world_x_CFLAGS = $(GEN_CFLAGS) 45ex_hello_world_x_LDADD = $(GEN_LDLIBS) 46 47ex_hexdump_SOURCES = hexdump.c ex_hexdump.c 48ex_hexdump_DEPENDENCIES = hexdump.h ex_utils.h 49ex_hexdump_CFLAGS = $(GEN_CFLAGS) 50ex_hexdump_LDADD = $(GEN_LDLIBS) 51 52ex_dir_list2html_DEPENDENCIES = ex_utils.h 53ex_dir_list2html_CFLAGS = $(GEN_CFLAGS) 54ex_dir_list2html_LDADD = $(GEN_LDLIBS) 55 56ex_dir_filter_SOURCES = opt.c bag.c ex_dir_filter.c 57ex_dir_filter_DEPENDENCIES = opt.h bag.h ex_utils.h 58ex_dir_filter_CFLAGS = $(GEN_CFLAGS) 59ex_dir_filter_LDADD = $(GEN_LDLIBS) 60 61ex_dir_list_DEPENDENCIES = ex_utils.h 62ex_dir_list_CFLAGS = $(GEN_CFLAGS) 63ex_dir_list_LDADD = $(GEN_LDLIBS) 64 65ex_dir_sort_SOURCES = opt.c bag.c ex_dir_sort.c 66ex_dir_sort_DEPENDENCIES = opt.h bag.h ex_utils.h 67ex_dir_sort_CFLAGS = $(GEN_CFLAGS) 68ex_dir_sort_LDADD = $(GEN_LDLIBS) 69 70ex_nl_DEPENDENCIES = ex_utils.h 71ex_nl_CFLAGS = $(GEN_CFLAGS) 72ex_nl_LDADD = $(GEN_LDLIBS) 73 74ex_phone_names_DEPENDENCIES = ex_utils.h 75ex_phone_names_CFLAGS = $(GEN_CFLAGS) 76ex_phone_names_LDADD = $(GEN_LDLIBS) 77 78ex_rot13_DEPENDENCIES = ex_utils.h 79ex_rot13_CFLAGS = $(GEN_CFLAGS) 80ex_rot13_LDADD = $(GEN_LDLIBS) 81 82ex_yes_DEPENDENCIES = ex_utils.h 83ex_yes_CFLAGS = $(GEN_CFLAGS) 84ex_yes_LDADD = $(GEN_LDLIBS) 85 86ex_mon_cp_DEPENDENCIES = ex_utils.h 87ex_mon_cp_CFLAGS = $(GEN_CFLAGS) 88ex_mon_cp_LDADD = $(GEN_LDLIBS) 89 90ex_lookup_ip_DEPENDENCIES = ex_utils.h 91ex_lookup_ip_CFLAGS = $(GEN_CFLAGS) 92ex_lookup_ip_LDADD = $(GEN_LDLIBS) 93 94ex_csv_DEPENDENCIES = ex_utils.h 95ex_csv_CFLAGS = $(GEN_CFLAGS) 96ex_csv_LDADD = $(GEN_LDLIBS) 97 98ex_highlight_DEPENDENCIES = ex_utils.h 99ex_highlight_CFLAGS = $(GEN_CFLAGS) 100ex_highlight_LDADD = $(GEN_LDLIBS) 101 102ex_ssi_SOURCES = opt.c ex_ssi.c 103ex_ssi_DEPENDENCIES = opt.h ex_utils.h 104ex_ssi_CFLAGS = $(GEN_CFLAGS) 105ex_ssi_LDADD = $(GEN_LDLIBS) 106 107ex_rainbow_DEPENDENCIES = ex_utils.h 108ex_rainbow_CFLAGS = $(GEN_CFLAGS) 109ex_rainbow_LDADD = $(GEN_LDLIBS) 110 111ex_changelog_diff_DEPENDENCIES = ex_utils.h 112ex_changelog_diff_CFLAGS = $(GEN_CFLAGS) 113ex_changelog_diff_LDADD = $(GEN_LDLIBS) 114 115ex_slowcat_SOURCES = opt.c ex_slowcat.c 116ex_slowcat_DEPENDENCIES = opt.h ex_utils.h 117ex_slowcat_CFLAGS = $(GEN_CFLAGS) $(TIMER_Q_CFLAGS) 118ex_slowcat_LDADD = $(GEN_LDLIBS) $(TIMER_Q_LDLIBS) 119 120# For command line stuff that uses events... 121CMDLINE_FILES_SRCS = date.c evnt.c hexdump.c opt.c vlg.c 122CMDLINE_FILES_HDRS = date.h evnt.h hexdump.h opt.h vlg.h 123 124ex_dns_SOURCES = dns.c $(CMDLINE_FILES_SRCS) ex_dns.c 125ex_dns_DEPENDENCIES = dns.h $(CMDLINE_FILES_HDRS) 126ex_dns_CFLAGS = $(GEN_CFLAGS) $(SOCKET_POLL_CFLAGS) $(TIMER_Q_CFLAGS) 127ex_dns_LDADD = $(GEN_LDLIBS) $(SOCKET_POLL_LDLIBS) $(TIMER_Q_LDLIBS) 128 129ex_cntl_SOURCES = $(CMDLINE_FILES_SRCS) ex_cntl.c 130ex_cntl_DEPENDENCIES = $(CMDLINE_FILES_HDRS) mk.h 131ex_cntl_CFLAGS = $(GEN_CFLAGS) $(SOCKET_POLL_CFLAGS) $(TIMER_Q_CFLAGS) 132ex_cntl_LDADD = $(GEN_LDLIBS) $(SOCKET_POLL_LDLIBS) $(TIMER_Q_LDLIBS) 133 134DAEMON_FILES_SRCS = bag.c conf.c cntl.c date.c evnt.c hexdump.c \ 135 opt.c opt_policy.c opt_serv.c vlg.c \ 136 conf_inline.c opt_policy_inline.c 137DAEMON_FILES_HDRS = bag.h conf.h cntl.h date.h evnt.h hexdump.h \ 138 opt.h opt_policy.h opt_serv.h vlg.h 139 140ex_httpd_SOURCES = mime_types.c httpd_conf_main.c httpd_conf_req.c \ 141 httpd_policy.c httpd_policy_inline.c \ 142 $(DAEMON_FILES_SRCS) httpd.c ex_httpd.c 143ex_httpd_DEPENDENCIES = mime_types.h httpd_conf_main.h httpd_conf_req.h \ 144 httpd_policy.h \ 145 $(DAEMON_FILES_HDRS) httpd.h httpd_err_codes.h 146ex_httpd_CFLAGS = $(GEN_CFLAGS) $(SOCKET_POLL_CFLAGS) $(TIMER_Q_CFLAGS) 147ex_httpd_LDADD = $(GEN_LDLIBS) $(SOCKET_POLL_LDLIBS) $(TIMER_Q_LDLIBS) 148 149ex_echod_SOURCES = $(DAEMON_FILES_SRCS) ex_echod.c 150ex_echod_DEPENDENCIES = $(DAEMON_FILES_HDRS) 151ex_echod_CFLAGS = $(GEN_CFLAGS) $(SOCKET_POLL_CFLAGS) $(TIMER_Q_CFLAGS) 152ex_echod_LDADD = $(GEN_LDLIBS) $(SOCKET_POLL_LDLIBS) $(TIMER_Q_LDLIBS) 153 154ex_ypservd_SOURCES = $(DAEMON_FILES_SRCS) ex_ypservd.c 155ex_ypservd_DEPENDENCIES = $(DAEMON_FILES_HDRS) 156ex_ypservd_CFLAGS = $(GEN_CFLAGS) $(SOCKET_POLL_CFLAGS) $(TIMER_Q_CFLAGS) 157ex_ypservd_LDADD = $(GEN_LDLIBS) $(SOCKET_POLL_LDLIBS) $(TIMER_Q_LDLIBS) 158 159ex_zcat_DEPENDENCIES = ex_utils.h 160ex_zcat_CFLAGS = $(GEN_CFLAGS) $(ZLIB_CFLAGS) $(BZ2_CFLAGS) 161ex_zcat_LDADD = $(GEN_LDLIBS) $(ZLIB_LDLIBS) $(BZ2_LDLIBS) 162 163ex_sock_filter_DEPENDENCIES = ex_utils.h 164ex_sock_filter_CFLAGS = $(GEN_CFLAGS) 165ex_sock_filter_LDADD = $(GEN_LDLIBS) 166 167ex_perf_sgopenssl_DEPENDENCIES = ex_perf.h 168ex_perf_sgopenssl_CFLAGS = $(GEN_CFLAGS) $(OPENSSL_CFLAGS) -Wno-aggregate-return 169ex_perf_sgopenssl_LDADD = $(GEN_LDLIBS) $(OPENSSL_LDLIBS) 170 171ex_gmp_factorials_DEPENDENCIES = ex_utils.h 172ex_gmp_factorials_CFLAGS = $(GEN_CFLAGS) $(GMP_CFLAGS) 173ex_gmp_factorials_LDADD = $(GEN_LDLIBS) $(GMP_LDLIBS) 174ex_gmp_nums_DEPENDENCIES = ex_utils.h 175ex_gmp_nums_CFLAGS = $(GEN_CFLAGS) $(GMP_CFLAGS) 176ex_gmp_nums_LDADD = $(GEN_LDLIBS) $(GMP_LDLIBS) 177ex_gmp_num_roman_DEPENDENCIES = ex_utils.h 178ex_gmp_num_roman_CFLAGS = $(GEN_CFLAGS) $(GMP_CFLAGS) 179ex_gmp_num_roman_LDADD = $(GEN_LDLIBS) $(GMP_LDLIBS) 180ex_gmp_num_words_DEPENDENCIES = ex_utils.h 181ex_gmp_num_words_CFLAGS = $(GEN_CFLAGS) $(GMP_CFLAGS) 182ex_gmp_num_words_LDADD = $(GEN_LDLIBS) $(GMP_LDLIBS) 183 184ex_perf_nodesize_foreach_DEPENDENCIES = ex_perf.h 185ex_perf_nodesize_foreach_CFLAGS = $(GEN_CFLAGS) $(GLIB20_CFLAGS) -Wno-aggregate-return 186ex_perf_nodesize_foreach_LDADD = $(GEN_LDLIBS) $(GLIB20_LDLIBS) 187 188ex_netstr_DEPENDENCIES = ex_perf.h 189ex_netstr_CFLAGS = $(GEN_CFLAGS) 190ex_netstr_LDADD = $(GEN_LDLIBS) 191 192ex_perf_nodesize_DEPENDENCIES = ex_perf.h 193ex_perf_nodesize_CFLAGS = $(GEN_CFLAGS) -Wno-aggregate-return 194ex_perf_nodesize_LDADD = $(GEN_LDLIBS) 195 196ex_perf_add_DEPENDENCIES = ex_perf.h 197ex_perf_add_CFLAGS = $(GEN_CFLAGS) -Wno-aggregate-return 198ex_perf_add_LDADD = $(GEN_LDLIBS) 199 200 201# BEG: Not a Vstr app. 202ex_tdns_CFLAGS = -pthread $(GEN_CFLAGS) 203ex_tdns_LDADD = $(GEN_LDLIBS) 204ex_tdns_LDFLAGS = -pthread 205# END: Not a Vstr app. 206 207 208examplesdir = $(EX_INST_DIR) 209examples_PROGRAMS = ex_netstr 210 211if MALLINFO_AVAIL 212examples_PROGRAMS += ex_perf_nodesize ex_perf_add 213endif 214 215# Turn on Programs we can compile... 216 217if HAVE_POSIX_HOST 218 219hi_DEP = ex_highlight 220hi_APP = ./ex_highlight 221ls_DEP = ex_dir_list ex_dir_filter ex_dir_sort ex_dir_list2html 222ls1_APP = ./ex_dir_list --size --follow -- 223ls2_APP = | ./ex_dir_filter \ 224 -A .. --deny-name-beg . \ 225 -D index.html -D dir_list.css \ 226 --deny-name-end .gz --deny-name-end .bz2 \ 227 --deny-name-end ~ --deny-name-end \\\# | \ 228 ./ex_dir_sort --sort=cmp | \ 229 ./ex_dir_list2html --name 230 231 232# Don't build by default, requires threads... 233# examples_PROGRAMS += ex_tdns 234 235examples_PROGRAMS += \ 236 ex_cat \ 237 ex_hello_world ex_hello_world_s ex_hello_world_m ex_hello_world_x \ 238 ex_hexdump ex_dir_list2html ex_dir_filter ex_dir_list ex_dir_sort ex_nl \ 239 ex_phone_names ex_rot13 \ 240 ex_yes ex_mon_cp ex_lookup_ip ex_csv $(hi_DEP) \ 241 ex_ssi ex_rainbow ex_changelog_diff ex_ccount ex_sock_filter ex_conf 242 243if TIMER_Q_AVAIL 244examples_PROGRAMS += ex_slowcat 245 246if SOCKET_POLL_AVAIL 247examples_PROGRAMS += ex_cntl ex_dns ex_echod 248#examples_PROGRAMS += ex_httpd 249#examples_PROGRAMS += ex_ypservd 250endif 251# Timer_q 252endif 253 254if BZ2_AVAIL 255if ZLIB_AVAIL 256examples_PROGRAMS += ex_zcat 257endif 258endif 259 260if GMP_AVAIL 261examples_PROGRAMS += \ 262 ex_gmp_factorials ex_gmp_nums ex_gmp_num_roman ex_gmp_num_words 263endif 264 265if OPENSSL_AVAIL 266if MALLINFO_AVAIL 267examples_PROGRAMS += ex_perf_sgopenssl 268endif 269endif 270 271if GLIB20_AVAIL 272if MALLINFO_AVAIL 273examples_PROGRAMS += ex_perf_nodesize_foreach 274endif 275endif 276 277 278if PERL_USR_BIN_AVAIL 279TESTS_ENVIRONMENT = SRCDIR="$(srcdir)" 280TESTS = tst/tst_cat.pl tst/tst_hexdump.pl tst/tst_nl.pl tst/tst_rot13.pl \ 281 tst/tst_sock_filter.pl tst/tst_conf.pl \ 282 tst/tst_echod.pl 283#TESTS += tst/tst_httpd_cmd.pl tst/tst_httpd_conf.pl 284#TESTS += tst/tst_httpd_pubonly.pl 285#TESTS += tst/tst_httpd_none.pl 286#TESTS += tst/tst_httpd_nonvhosts.pl 287#TESTS += tst/tst_httpd_vhosts.pl 288endif 289 290else 291# !HAVE_POSIX_HOST 292 293# Use pre-installed version... 294hi_DEP = 295hi_APP = echo -- hi 296ls_DEP = 297ls1_APP = echo -- ls1 298ls2_APP = echo -- ls2 299 300endif 301 302example_code_html = \ 303 html/app.h.html \ 304 html/bag.c.html \ 305 html/bag.h.html \ 306 html/conf.c.html \ 307 html/conf.h.html \ 308 html/conf_inline.c.html \ 309 html/cntl.c.html \ 310 html/cntl.h.html \ 311 html/date.c.html \ 312 html/date.h.html \ 313 html/dns.c.html \ 314 html/dns.h.html \ 315 html/evnt.c.html \ 316 html/evnt.h.html \ 317 html/mime_types.c.html \ 318 html/mime_types.h.html \ 319 html/ex_cat.c.html \ 320 html/ex_ccount.c.html \ 321 html/ex_changelog_diff.c.html \ 322 html/ex_conf.c.html \ 323 html/ex_cntl.c.html \ 324 html/ex_csv.c.html \ 325 html/ex_dir_filter.c.html \ 326 html/ex_dir_list.c.html \ 327 html/ex_dir_sort.c.html \ 328 html/ex_dns.c.html \ 329 html/ex_echod.c.html \ 330 html/ex_gmp_factorials.c.html \ 331 html/ex_gmp_num_roman.c.html \ 332 html/ex_gmp_nums.c.html \ 333 html/ex_gmp_num_words.c.html \ 334 html/ex_hello_world.c.html \ 335 html/ex_hello_world.h.html \ 336 html/ex_hello_world_m.c.html \ 337 html/ex_hello_world_s.c.html \ 338 html/ex_hello_world_x.c.html \ 339 html/ex_hexdump.c.html \ 340 html/ex_highlight.c.html \ 341 html/ex_dir_list2html.c.html \ 342 html/ex_httpd.c.html \ 343 html/ex_lookup_ip.c.html \ 344 html/ex_mon_cp.c.html \ 345 html/ex_netstr.c.html \ 346 html/ex_nl.c.html \ 347 html/ex_perf_add.c.html \ 348 html/ex_perf.h.html \ 349 html/ex_perf_nodesize.c.html \ 350 html/ex_perf_nodesize_foreach.c.html \ 351 html/ex_perf_sgopenssl.c.html \ 352 html/ex_phone_names.c.html \ 353 html/ex_rainbow.c.html \ 354 html/ex_rot13.c.html \ 355 html/ex_slowcat.c.html \ 356 html/ex_ssi.c.html \ 357 html/ex_utils.h.html \ 358 html/ex_yes.c.html \ 359 html/ex_ypservd.c.html \ 360 html/ex_zcat.c.html \ 361 html/hexdump.c.html \ 362 html/hexdump.h.html \ 363 html/httpd.c.html \ 364 html/httpd.h.html \ 365 html/httpd_err_codes.h.html \ 366 html/httpd_conf_main.c.html \ 367 html/httpd_conf_main.h.html \ 368 html/httpd_conf_req.c.html \ 369 html/httpd_conf_req.h.html \ 370 html/httpd_policy.c.html \ 371 html/httpd_policy.h.html \ 372 html/httpd_policy_inline.c.html \ 373 html/mk.h.html \ 374 html/opt.h.html \ 375 html/opt_serv.c.html \ 376 html/opt_serv.h.html \ 377 html/opt_policy.c.html \ 378 html/opt_policy.h.html \ 379 html/opt_policy_inline.c.html \ 380 html/vlg.c.html \ 381 html/vlg.h.html 382# html/ex_tdns.c.html 383 384 385htmldir = $(EX_INST_DIR)/html 386html_DATA = \ 387 html/index.html \ 388 html/dir_list.css \ 389 html/f_c.css \ 390 \ 391 $(example_code_html) 392 393examplesscriptsdir = $(EX_INST_DIR)/scripts 394examplesscripts_DATA = \ 395 highlight2style.pl \ 396 nodesize_plots.pl \ 397 nodesize_split.pl 398 399extradatadir = $(EX_INST_DIR)/data 400extradata_DATA = \ 401 hexdump_data \ 402 mime_types_extra.txt \ 403 README \ 404 zcat_data_1.bz2 \ 405 zcat_data_1.gz \ 406 zcat_data_2.bz2 \ 407 zcat_data_2.gz 408 409 410initddir = $(sysconfdir)/init.d 411initd_SCRIPTS = \ 412 init.d/jechod 413 414 415CLEANFILES=$(html_DATA) html 416 417html/f_c.css: ../Documentation/f_c.css 418 -@mkdir html 419 -$(LN_S) ../$< html 420 421html/dir_list.css: ../examples/dir_list.css 422 -@mkdir html 423 -$(LN_S) ../$< html 424 425html/index.html: html/dir_list.css $(ls_DEP) $(example_code_html) 426 $(ls1_APP) html $(ls2_APP) 'Vstr example code' > $@ 427 $(srcdir)/gzip-r.pl --zero --type=all html 428 429html/%.html: % html/f_c.css $(hi_DEP) 430 $(hi_APP) --css-filename=f_c.css $< > $@ 431 432