INSTALL=${PWD}/apache-install #gllvm LLVMCC=gclang LLVMCXX=gclang++ LLVMGET=get-bc #wllvm #LLVMCC=wllvm #LLVMCXX=wllvm++ #LLVMGET=extract-bc #current versions as of 5/16/2018 PCRE=pcre-8.42 APR=apr-1.7.0 APR_UTIL=apr-util-1.6.1 HTTPD=httpd-2.4.39 #the urls (if the versions change you should check these) PCRE_URL=https://ftp.pcre.org/pub/pcre/${PCRE}.tar.gz APR_URL=http://us.mirrors.quenda.co/apache/apr/${APR}.tar.gz APR_UTIL_URL=http://apache.mirrors.pair.com/apr/${APR_UTIL}.tar.gz HTTPD_URL=http://apache.cs.utah.edu/httpd/${HTTPD}.tar.gz all: build build: ${PCRE}_build ${APR}_build ${APR_UTIL}_build ${HTTPD}_build ${PCRE}.tar.gz: wget ${PCRE_URL} ${PCRE}.tar: ${PCRE}.tar.gz gunzip -k ${PCRE}.tar.gz ${PCRE}: ${PCRE}.tar tar xvf ${PCRE}.tar ${PCRE}_build: ${PCRE} mkdir -p ${PCRE}_build && \ cd ${PCRE}_build && \ CXX=${LLVMCXX} CC=${LLVMCC} ../${PCRE}/configure --prefix=${INSTALL}/${PCRE} && \ CXX=${LLVMCXX} CC=${LLVMCC} make && \ cd .libs && \ ${LLVMGET} libpcre.so && \ cp libpcre.so.*.bc ../../libpcre.so.bc && \ cd .. && \ make install ${APR}.tar.gz: wget ${APR_URL} ${APR}.tar: ${APR}.tar.gz gunzip -k ${APR}.tar.gz ${APR}: ${APR}.tar tar xvf ${APR}.tar ${APR}_build: ${APR} mkdir -p ${APR}_build && \ cd ${APR}_build && \ CC=${LLVMCC} ../${APR}/configure --prefix=${INSTALL}/${APR} && \ CC=${LLVMCC} make && \ cd .libs && \ ${LLVMGET} libapr-1.so && \ cp libapr-1.so.*.bc ../../libapr-1.so.bc && \ cd .. && \ make install ${APR_UTIL}.tar.gz: wget ${APR_UTIL_URL} ${APR_UTIL}.tar: ${APR_UTIL}.tar.gz gunzip -k ${APR_UTIL}.tar.gz ${APR_UTIL}: ${APR_UTIL}.tar tar xvf ${APR_UTIL}.tar ${APR_UTIL}_build: ${APR_UTIL} mkdir -p ${APR_UTIL}_build && \ cd ${APR_UTIL}_build && \ CC=${LLVMCC} ../${APR_UTIL}/configure --prefix=${INSTALL}/${APR_UTIL} \ --with-apr=${INSTALL}/${APR} && \ CC=${LLVMCC} make && \ cd .libs && \ ${LLVMGET} libaprutil-1.so && \ cp libaprutil-1.so.*.bc ../../libaprutil-1.so.bc && \ cd .. && \ make install ${HTTPD}.tar.gz: wget ${HTTPD_URL} ${HTTPD}.tar: ${HTTPD}.tar.gz gunzip -k ${HTTPD}.tar.gz ${HTTPD}: ${HTTPD}.tar tar xvf ${HTTPD}.tar ${HTTPD}_build: ${HTTPD} mkdir -p ${HTTPD}_build && \ cd ${HTTPD}_build && \ CC=${LLVMCC} ../${HTTPD}/configure --prefix=${INSTALL}/${HTTPD} \ --with-pcre=${INSTALL}/${PCRE}/bin/pcre-config \ --with-apr=${INSTALL}/${APR} \ --with-apr-util=${INSTALL}/${APR_UTIL} && \ CC=${LLVMCC} make && \ ${LLVMGET} httpd && \ cp httpd.bc ../ && \ make install clean: rm -rf *~ *_build slash linked_slash httpd *.manifest httpd_* very_clean: clean rm -rf ${HTTPD} ${APR_UTIL} ${APR} ${PCRE} spotless: very_clean rm -rf *.tar.gz *.tar *.bc build ${INSTALL}