blob: b1866e5800deb0f1c2d12fc0cbcd1f2b7a010a2e [file]
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Makefile.in for support/a2md
# Builds the a2md standalone command-line tool.
#
# Source files are split into two groups:
# MD_LIB_SRCS - the libmd core, taken directly from modules/md/
# A2MD_SRCS - the command layer, living in this directory
DISTCLEAN_TARGETS =
CLEAN_TARGETS = a2md
# The top-level httpd build rules provide $(LIBTOOL), $(CC), $(LINK),
# $(LT_COMPILE), ALL_CFLAGS, ALL_CPPFLAGS, ALL_INCLUDES, etc.
include $(top_builddir)/build/rules.mk
# -----------------------------------------------------------------------
# Include paths
# -----------------------------------------------------------------------
# modules/md/ contains all md_*.h headers (md.h, md_acme.h, …) that the
# cmd sources and the lib sources include.
A2MD_CPPFLAGS = \
-I$(top_srcdir)/include \
-I$(top_srcdir)/modules/md \
-I$(top_srcdir)/support/a2md \
-std=c99 -D_GNU_SOURCE \
$(MOD_CPPFLAGS) $(CPPFLAGS) $(EXTRA_CPPFLAGS)
# -----------------------------------------------------------------------
# Library objects – every md_*.c from modules/md that mod_md compiles,
# minus the mod_md_*.c files which depend on the httpd server API.
# -----------------------------------------------------------------------
MD_LIB_DIR = $(top_srcdir)/modules/md
MD_LIB_OBJS = \
md_acme.lo \
md_acme_acct.lo \
md_acme_authz.lo \
md_acme_drive.lo \
md_acme_order.lo \
md_acmev2_drive.lo \
md_core.lo \
md_curl.lo \
md_crypt.lo \
md_event.lo \
md_http.lo \
md_json.lo \
md_jws.lo \
md_log.lo \
md_ocsp.lo \
md_result.lo \
md_reg.lo \
md_status.lo \
md_store.lo \
md_store_fs.lo \
md_time.lo \
md_util.lo
# -----------------------------------------------------------------------
# Command objects – the four sources that live in this directory
# -----------------------------------------------------------------------
A2MD_OBJS = \
md_cmd_main.lo \
md_cmd_acme.lo \
md_cmd_reg.lo \
md_cmd_store.lo
# -----------------------------------------------------------------------
# Linker flags for a2md's external dependencies:
# - APR / APR-Util: AP_LIBS is set in build/config_vars.mk (included via
# build/rules.mk) and carries libapr-1.la and libaprutil-1.la.
# - libcurl, libssl/libcrypto, libjansson: set by configure into A2MD_LIBS
# (also in build/config_vars.mk).
# -----------------------------------------------------------------------
PROGRAM_LDADD = $(UTIL_LDFLAGS) $(EXTRA_LIBS) $(AP_LIBS)
A2MD_LDADD = $(PROGRAM_LDADD) $(A2MD_LIBS)
# -----------------------------------------------------------------------
# Pattern rules: compile lib sources from modules/md/
# -----------------------------------------------------------------------
.SUFFIXES: .c .lo
$(MD_LIB_OBJS): %.lo: $(MD_LIB_DIR)/%.c
$(LIBTOOL) --mode=compile $(CC) $(A2MD_CPPFLAGS) $(ALL_CFLAGS) \
$(ALL_INCLUDES) $(PICFLAGS) $(LTCFLAGS) -c $< -o $@
# -----------------------------------------------------------------------
# Pattern rules: compile cmd sources from this directory
# -----------------------------------------------------------------------
$(A2MD_OBJS): %.lo: %.c
$(LIBTOOL) --mode=compile $(CC) $(A2MD_CPPFLAGS) $(ALL_CFLAGS) \
$(ALL_INCLUDES) $(PICFLAGS) $(LTCFLAGS) -c $< -o $@
# -----------------------------------------------------------------------
# Final link
# -----------------------------------------------------------------------
a2md: $(MD_LIB_OBJS) $(A2MD_OBJS)
$(LIBTOOL) --mode=link $(CC) $(ALL_CFLAGS) $(PILDFLAGS) \
$(LT_LDFLAGS) $(ALL_LDFLAGS) -o $@ \
$(a2md_LTFLAGS) \
$(MD_LIB_OBJS) $(A2MD_OBJS) $(A2MD_LDADD)
# -----------------------------------------------------------------------
# Clean targets (invoked by the parent Makefile)
# -----------------------------------------------------------------------
clean:
-rm -f a2md *.lo *.o *.la
-rm -rf .libs _libs