+flag :=
+plus :=
+link :=
+libs :=
+
+gxx := $(shell xcrun --sdk iphoneos -f g++)
+cycc := $(gxx)
+
+sdk := $(shell xcodebuild -sdk iphoneos -version Path)
+cycc += -isysroot $(sdk)
+cycc += -idirafter /usr/include
+cycc += -F$(sdk)/System/Library/PrivateFrameworks
+
+cycc += -arch arm64
+cycc += -Xarch_arm64 -miphoneos-version-min=7.0
+
+cycc += -fmessage-length=0
+cycc += -gfull -O2
+cycc += -fvisibility=hidden
+
+link += -Wl,-dead_strip
+link += -Wl,-no_dead_strip_inits_and_terms
+
+flag += -Xarch_arm64 -Iapt
+flag += -Xarch_arm64 -Iapt-contrib
+flag += -Xarch_arm64 -Iapt-deb
+flag += -Xarch_arm64 -Iapt-extra
+flag += -Xarch_arm64 -Iapt-tag
+
+flag += -I.
+flag += -isystem sysroot/usr/include
+
+flag += -idirafter icu/icuSources/common
+flag += -idirafter icu/icuSources/i18n
+
+flag += -Wall
+flag += -Wno-dangling-else
+flag += -Wno-deprecated-declarations
+flag += -Wno-objc-protocol-method-implementation
+flag += -Wno-logical-op-parentheses
+flag += -Wno-shift-op-parentheses
+flag += -Wno-unknown-pragmas
+flag += -Wno-unknown-warning-option
+
+plus += -fobjc-call-cxx-cdtors
+plus += -fvisibility-inlines-hidden
+
+link += -Lsysroot/usr/lib
+link += -multiply_defined suppress
+
+libs += -framework CoreFoundation
+libs += -framework CoreGraphics
+libs += -framework Foundation
+libs += -framework GraphicsServices
+libs += -framework IOKit
+libs += -framework QuartzCore
+libs += -framework SpringBoardServices
+libs += -framework SystemConfiguration
+libs += -framework WebCore
+libs += -framework WebKit
+
+libs += -Xarch_armv6 -Wl,-lapt-pkg
+libs += -Xarch_arm64 -Wl,Objects/libapt64.a
+libs += -licucore
+
+uikit :=
+uikit += -framework UIKit
+
+link += -Xarch_armv6 -Wl,-segalign,4000
+
+dirs := Menes CyteKit Cydia SDURLCache
+
+code := $(foreach dir,$(dirs),$(wildcard $(foreach ext,h hpp c cpp m mm,$(dir)/*.$(ext))))
+code := $(filter-out SDURLCache/SDURLCacheTests.m,$(code))
+code += MobileCydia.mm Version.mm iPhonePrivate.h Cytore.hpp lookup3.c Sources.h Sources.mm DiskUsage.cpp
+
+source := $(filter %.m,$(code)) $(filter %.mm,$(code))
+source += $(filter %.c,$(code)) $(filter %.cpp,$(code))
+header := $(filter %.h,$(code)) $(filter %.hpp,$(code))
+
+object := $(source)
+object := $(object:.c=.o)
+object := $(object:.cpp=.o)
+object := $(object:.m=.o)
+object := $(object:.mm=.o)
+object := $(object:%=Objects/%)
+
+libapt :=
+libapt += $(wildcard apt/apt-pkg/*.cc)
+libapt += $(wildcard apt/apt-pkg/deb/*.cc)
+libapt += $(wildcard apt/apt-pkg/contrib/*.cc)
+libapt += apt-tag/apt-pkg/tagfile-keys.cc
+libapt += apt/methods/store.cc
+libapt := $(filter-out %/srvrec.cc,$(libapt))
+libapt := $(patsubst %.cc,Objects/%.o,$(libapt))
+
+link += -Xarch_arm64 -Wl,-lz,-liconv
+
+flag += -DAPT_PKG_EXPOSE_STRING_VIEW
+flag += -Dsighandler_t=sig_t
+
+aptc := $(cycc) $(flag)
+aptc += -include apt.h
+aptc += -Wno-deprecated-register
+aptc += -Wno-unused-private-field
+aptc += -Wno-unused-variable
+
+cycc += -arch armv6
+cycc += -Xarch_armv6 -miphoneos-version-min=2.0
+flag += -Xarch_armv6 -marm # @synchronized
+flag += -Xarch_armv6 -mcpu=arm1176jzf-s
+flag += -mllvm -arm-reserve-r9
+link += -Xarch_armv6 -Wl,-lgcc_s.1
+
+plus += -std=c++11
+#plus += -Wp,-stdlib=libc++
+#link += libcxx/lib/libc++.a
+
+images := $(shell find MobileCydia.app/ -type f -name '*.png')
+images := $(images:%=Images/%)
+
+lproj_deb := debs/cydia-lproj_$(version)_iphoneos-arm.deb
+
+all: MobileCydia