from the "macos" source tarball, which differs from the "linux" one used here only by which build instructions it contains.
225 lines
5.7 KiB
Text
225 lines
5.7 KiB
Text
$NetBSD: patch-build_mac_Makefile,v 1.1 2018/03/17 17:16:59 schmonz Exp $
|
|
|
|
Include Darwin makefile from the "macos" source tarball.
|
|
|
|
--- build/mac/Makefile.orig 2018-03-17 17:07:25.000000000 +0000
|
|
+++ build/mac/Makefile
|
|
@@ -0,0 +1,218 @@
|
|
+# Make file for Clang compiler on macOS.
|
|
+
|
|
+# to test on Linux use "make linux=1"
|
|
+
|
|
+# list of source files for astyle
|
|
+SRC = astyle_main.cpp \
|
|
+ ASBeautifier.cpp \
|
|
+ ASFormatter.cpp \
|
|
+ ASEnhancer.cpp \
|
|
+ ASLocalizer.cpp \
|
|
+ ASResource.cpp
|
|
+
|
|
+# list of source files for libraries without ASLocalizer
|
|
+SRCx = astyle_main.cpp \
|
|
+ ASBeautifier.cpp \
|
|
+ ASFormatter.cpp \
|
|
+ ASEnhancer.cpp \
|
|
+ ASResource.cpp
|
|
+
|
|
+# source directories
|
|
+vpath %.cpp ../../src
|
|
+vpath %.h ../../src
|
|
+
|
|
+# NOTE for java compiles the environment variable $JAVA_HOME must be set
|
|
+# example: export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.00
|
|
+ifndef JAVA_HOME
|
|
+ JAVA_HOME = /usr/lib/jvm/default-java
|
|
+endif
|
|
+
|
|
+# set prefix if not defined on the command line
|
|
+ifndef prefix
|
|
+ prefix=/usr
|
|
+endif
|
|
+SYSCONF_PATH=$(prefix)/share/doc/astyle
|
|
+
|
|
+# define macros
|
|
+dylib = dylib
|
|
+dynamiclib = -dynamiclib
|
|
+bindir = bin
|
|
+objdir = obj
|
|
+ipath=$(prefix)/bin
|
|
+CBASEFLAGS = -W -Wall -std=c++11 -stdlib=libc++ -fno-rtti -fno-exceptions \
|
|
+-mmacosx-version-min=10.9
|
|
+LDBASEFLAGS =
|
|
+JAVAINCS = -I/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/include \
|
|
+-I/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/include/darwin \
|
|
+-I/System/Library/Frameworks/JavaVM.framework/Headers
|
|
+CXX = clang++
|
|
+INSTALL=install -o $(USER) -g wheel
|
|
+# INSTALL=install -o 0 -g 0
|
|
+
|
|
+# for testing on linux
|
|
+ifdef linux
|
|
+ dylib = so
|
|
+ dynamiclib = -shared
|
|
+ CXX = g++
|
|
+ JAVAINCS = -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
|
|
+endif
|
|
+
|
|
+##################################################
|
|
+
|
|
+# define compile options for each build
|
|
+ifdef CFLAGS
|
|
+ CFLAGSr = -DNDEBUG $(CBASEFLAGS) $(CFLAGS)
|
|
+ CFLAGSd = -g $(CBASEFLAGS) $(CFLAGS)
|
|
+else
|
|
+ CFLAGSr = -DNDEBUG -O3 $(CBASEFLAGS)
|
|
+ CFLAGSd = -g $(CBASEFLAGS)
|
|
+endif
|
|
+CFLAGSs = -DASTYLE_LIB -fPIC $(CFLAGSr)
|
|
+CFLAGSsd = -DASTYLE_LIB -fPIC $(CFLAGSd)
|
|
+CFLAGSa = -DASTYLE_LIB $(CFLAGSr)
|
|
+CFLAGSad = -DASTYLE_LIB $(CFLAGSd)
|
|
+CFLAGSsj = -DASTYLE_JNI -fPIC $(CFLAGSr) $(JAVAINCS)
|
|
+CFLAGSsjd = -DASTYLE_JNI -fPIC $(CFLAGSd) $(JAVAINCS)
|
|
+
|
|
+# define link options
|
|
+ifdef LDFLAGS
|
|
+ LDFLAGSr = $(LDBASEFLAGS) $(LDFLAGS)
|
|
+ LDFLAGSd = $(LDBASEFLAGS) $(LDFLAGS)
|
|
+else
|
|
+ LDFLAGSr = $(LDBASEFLAGS)
|
|
+ LDFLAGSd = $(LDBASEFLAGS)
|
|
+endif
|
|
+
|
|
+# object files are built from the source list $(SRC)
|
|
+# a suffix is added for each build
|
|
+OBJ = $(patsubst %.cpp,$(objdir)/%.o,$(SRC))
|
|
+OBJd = $(patsubst %.cpp,$(objdir)/%_d.o,$(SRC))
|
|
+OBJs = $(patsubst %.cpp,$(objdir)/%_s.o,$(SRCx))
|
|
+OBJsd = $(patsubst %.cpp,$(objdir)/%_sd.o,$(SRCx))
|
|
+OBJa = $(patsubst %.cpp,$(objdir)/%_a.o,$(SRCx))
|
|
+OBJad = $(patsubst %.cpp,$(objdir)/%_ad.o,$(SRCx))
|
|
+OBJsj = $(patsubst %.cpp,$(objdir)/%_sj.o,$(SRCx))
|
|
+OBJsjd = $(patsubst %.cpp,$(objdir)/%_sjd.o,$(SRCx))
|
|
+
|
|
+# define object file rule (with the suffix) for each build
|
|
+
|
|
+# OBJ
|
|
+$(objdir)/%.o: %.cpp astyle.h astyle_main.h
|
|
+ @ mkdir -p $(objdir)
|
|
+ $(CXX) $(CFLAGSr) -c $< -o $@
|
|
+
|
|
+# OBJd
|
|
+$(objdir)/%_d.o: %.cpp astyle.h astyle_main.h
|
|
+ @ mkdir -p $(objdir)
|
|
+ $(CXX) $(CFLAGSd) -c $< -o $@
|
|
+
|
|
+# OBJs
|
|
+$(objdir)/%_s.o: %.cpp astyle.h
|
|
+ @ mkdir -p $(objdir)
|
|
+ $(CXX) $(CFLAGSs) -c $< -o $@
|
|
+
|
|
+# OBJsd
|
|
+$(objdir)/%_sd.o: %.cpp astyle.h
|
|
+ @ mkdir -p $(objdir)
|
|
+ $(CXX) $(CFLAGSsd) -c $< -o $@
|
|
+
|
|
+# OBJa
|
|
+$(objdir)/%_a.o: %.cpp astyle.h
|
|
+ @ mkdir -p $(objdir)
|
|
+ $(CXX) $(CFLAGSa) -c $< -o $@
|
|
+
|
|
+# OBJad
|
|
+$(objdir)/%_ad.o: %.cpp astyle.h
|
|
+ @ mkdir -p $(objdir)
|
|
+ $(CXX) $(CFLAGSad) -c $< -o $@
|
|
+
|
|
+# OBJsj
|
|
+$(objdir)/%_sj.o: %.cpp astyle.h
|
|
+ @ mkdir -p $(objdir)
|
|
+ $(CXX) $(CFLAGSsj) -c $< -o $@
|
|
+
|
|
+# OBJsjd
|
|
+$(objdir)/%_sjd.o: %.cpp astyle.h
|
|
+ @ mkdir -p $(objdir)
|
|
+ $(CXX) $(CFLAGSsjd) -c $< -o $@
|
|
+
|
|
+##################################################
|
|
+# define build dependencies for each command
|
|
+
|
|
+release: astyle
|
|
+astyle: $(OBJ)
|
|
+ @ mkdir -p $(bindir)
|
|
+ $(CXX) $(LDFLAGSr) -dead_strip -o $(bindir)/AStyle $^
|
|
+ strip $(bindir)/AStyle
|
|
+ @ echo
|
|
+
|
|
+debug: astyled
|
|
+astyled: $(OBJd)
|
|
+ @ mkdir -p $(bindir)
|
|
+ $(CXX) $(LDFLAGSd) -o $(bindir)/AStyled $^
|
|
+ @ echo
|
|
+
|
|
+shared: libastyle.$(dylib)
|
|
+libastyle.$(dylib): $(OBJs)
|
|
+ @ mkdir -p $(bindir)
|
|
+ $(CXX) $(dynamiclib) $(LDFLAGSr) -o $(bindir)/libastyle31.$(dylib) $^
|
|
+ @ echo
|
|
+
|
|
+shareddebug: libastyled.$(dylib)
|
|
+libastyled.$(dylib): $(OBJsd)
|
|
+ @ mkdir -p $(bindir)
|
|
+ $(CXX) $(dynamiclib) $(LDFLAGSd) -o $(bindir)/libastyle31d.$(dylib) $^
|
|
+ @ echo
|
|
+
|
|
+static: libastyle.a
|
|
+libastyle.a: $(OBJa)
|
|
+ @ mkdir -p $(bindir)
|
|
+ ar crs $(bindir)/$@ $^
|
|
+ @ echo
|
|
+
|
|
+staticdebug: libastyled.a
|
|
+libastyled.a: $(OBJad)
|
|
+ @ mkdir -p $(bindir)
|
|
+ ar crs $(bindir)/$@ $^
|
|
+ @ echo
|
|
+
|
|
+java: libastylej.$(dylib)
|
|
+libastylej.$(dylib): $(OBJsj)
|
|
+ @ mkdir -p $(bindir)
|
|
+ $(CXX) $(dynamiclib) $(LDFLAGSr) -o $(bindir)/libastyle31j.$(dylib) $^
|
|
+ @ echo
|
|
+
|
|
+javadebug: libastylejd.$(dylib)
|
|
+libastylejd.$(dylib): $(OBJsjd)
|
|
+ @ mkdir -p $(bindir)
|
|
+ $(CXX) $(dynamiclib) $(LDFLAGSd) -o $(bindir)/libastyle31jd.$(dylib) $^
|
|
+ @ echo
|
|
+
|
|
+all: release debug shared shareddebug static staticdebug
|
|
+
|
|
+javaall: java javadebug
|
|
+
|
|
+clean:
|
|
+ rm -f $(objdir)/*.o $(bindir)/*astyle*
|
|
+
|
|
+cleanobj:
|
|
+ rm -f $(objdir)/*.o
|
|
+
|
|
+install:
|
|
+ $(INSTALL) -m 755 -d $(ipath)
|
|
+ @$(INSTALL) -m 755 $(bindir)/astyle $(ipath)
|
|
+
|
|
+ @if [ -d $(SYSCONF_PATH)/html ]; then \
|
|
+ rm -rf $(SYSCONF_PATH)/html; \
|
|
+ fi
|
|
+
|
|
+ $(INSTALL) -m 755 -d $(SYSCONF_PATH)
|
|
+ @mkdir -p $(SYSCONF_PATH)/html;
|
|
+ @for files in ../../doc/*.html ../../doc/*.css; \
|
|
+ do \
|
|
+ $(INSTALL) -m 644 "$$files" $(SYSCONF_PATH)/html; \
|
|
+ done
|
|
+
|
|
+uninstall:
|
|
+ rm -f $(ipath)/astyle
|
|
+ rm -rf $(SYSCONF_PATH)
|