"Ubuntu with wxWidgets"의 두 판 사이의 차이
(→Makefile 만들기.) |
|||
37번째 줄: | 37번째 줄: | ||
** top_srcdir | ** top_srcdir | ||
*** 현재 프로젝트 소스에서, 상대경로로 wxWidgets 라이브러리 경로를 설정해주자. | *** 현재 프로젝트 소스에서, 상대경로로 wxWidgets 라이브러리 경로를 설정해주자. | ||
+ | ** ~OBJECTS | ||
+ | *** 새 파일이 추가될 때마다, 파일이름을 추가하자. | ||
+ | ** 소스 의존성 관계를 파일이 추가될 때마다, 추가하자. | ||
+ | |||
+ | * 예제 Makefile | ||
+ | |||
+ | |||
+ | # ========================================================================= | ||
+ | # This makefile was generated by | ||
+ | # Bakefile 0.2.9 (http://www.bakefile.org) | ||
+ | # Do not modify, all changes will be overwritten! | ||
+ | # ========================================================================= | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | prefix = /usr/local | ||
+ | exec_prefix = ${prefix} | ||
+ | datarootdir = ${prefix}/share | ||
+ | INSTALL = /usr/bin/install -c | ||
+ | EXEEXT = | ||
+ | WINDRES = | ||
+ | SETFILE = | ||
+ | NM = nm | ||
+ | BK_DEPS = /home/odroid/work/wxWidgets-3.0.2/buildr/bk-deps | ||
+ | srcdir = . | ||
+ | top_srcdir = ../../wxWidgets-3.0.2 | ||
+ | LIBS = -lz -ldl -lm | ||
+ | LDFLAGS_GUI = | ||
+ | CXX = g++ | ||
+ | CXXFLAGS = -DWX_PRECOMP -pthread -O2 -fno-strict-aliasing -pthread -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/libpng12 -pthread -I/usr/local/include/pango-1.0 -I/usr/include/gtk-unix-print-2.0 -I/usr/include/gtk-2.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/harfbuzz -fvisibility=hidden -fvisibility-inlines-hidden | ||
+ | CPPFLAGS = -D_FILE_OFFSET_BITS=64 -I${wx_top_builddir}/lib/wx/include/gtk2-unicode-3.0 -I${top_srcdir}/include -pthread -I/usr/local/include/pango-1.0 -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/harfbuzz -pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/libxml2 | ||
+ | LDFLAGS = -pthread | ||
+ | WX_LIB_FLAVOUR = | ||
+ | TOOLKIT = GTK | ||
+ | TOOLKIT_LOWERCASE = gtk | ||
+ | TOOLKIT_VERSION = 2 | ||
+ | TOOLCHAIN_FULLNAME = gtk2-unicode-3.0 | ||
+ | EXTRALIBS = -pthread -Wl,--version-script,$(wx_top_builddir)/version-script -lz -ldl -lm | ||
+ | EXTRALIBS_XML = -lexpat | ||
+ | EXTRALIBS_GUI = -pthread -L/usr/local/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lgobject-2.0 -lfreetype -lgthread-2.0 -lglib-2.0 -lX11 -lXxf86vm -lSM -L/usr/local/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lgobject-2.0 -lglib-2.0 -lfreetype -lnotify -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lpng -lz -ljpeg -ltiff | ||
+ | CXXWARNINGS = -Wall -Wundef -Wunused-parameter -Wno-ctor-dtor-privacy -Woverloaded-virtual | ||
+ | HOST_SUFFIX = | ||
+ | SAMPLES_RPATH_FLAG = -Wl,-rpath,$(wx_top_builddir)/lib | ||
+ | wx_top_builddir = /home/odroid/work/wxWidgets-3.0.2/buildr | ||
+ | |||
+ | ### Variables: ### | ||
+ | |||
+ | DESTDIR = | ||
+ | WX_RELEASE = 3.0 | ||
+ | WX_VERSION = $(WX_RELEASE).2 | ||
+ | LIBDIRNAME = $(wx_top_builddir)/lib | ||
+ | MINIMAL_CXXFLAGS = -D__WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) \ | ||
+ | $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) \ | ||
+ | -I$(srcdir) $(__DLLFLAG_p) -I$(srcdir)/../../samples $(CXXWARNINGS) \ | ||
+ | $(CPPFLAGS) $(CXXFLAGS) | ||
+ | MINIMAL_OBJECTS = \ | ||
+ | $(__font___win32rc) \ | ||
+ | $(__font_os2_lib_res) \ | ||
+ | TP-CAMPro.o \ | ||
+ | stdafx.o \ | ||
+ | CLApp.o \ | ||
+ | CLFrame.o \ | ||
+ | MainPanel.o \ | ||
+ | OperatorSetPanel.o \ | ||
+ | Bitmap3Button.o \ | ||
+ | Bitmap3ButtonEx.o \ | ||
+ | Bitmap2Button.o \ | ||
+ | Bitmap2ButtonEx.o \ | ||
+ | CameraFullPanel.o \ | ||
+ | CameraSetPanel.o \ | ||
+ | DateSetPanel.o \ | ||
+ | EnforcementFullPanel.o \ | ||
+ | EnforcementPanel.o \ | ||
+ | EnforcementSetPanel.o \ | ||
+ | FileMngFullPanel.o \ | ||
+ | FileMngPanel.o \ | ||
+ | LoginPanel.o \ | ||
+ | BatteryDisplay.o \ | ||
+ | DateDisplay.o \ | ||
+ | KeyboardDialog.o \ | ||
+ | KeyboardEngPanel.o \ | ||
+ | MoviePanel.o \ | ||
+ | Global.o \ | ||
+ | NumberPadDialog.o \ | ||
+ | NumberPadPanel.o \ | ||
+ | Controller.o | ||
+ | |||
+ | |||
+ | SRCS = $(MINIMAL_OBJECTS:.o=.cpp) | ||
+ | |||
+ | ### Conditionally set variables: ### | ||
+ | |||
+ | #CXXC = $(CXX) | ||
+ | CXXC = $(BK_DEPS) $(CXX) | ||
+ | #PORTNAME = base | ||
+ | PORTNAME = $(TOOLKIT_LOWERCASE)$(TOOLKIT_VERSION) | ||
+ | #WXBASEPORT = _carbon | ||
+ | #WXDEBUGFLAG = d | ||
+ | WXUNICODEFLAG = u | ||
+ | #WXUNIVNAME = univ | ||
+ | EXTRALIBS_FOR_BASE = $(EXTRALIBS) | ||
+ | #EXTRALIBS_FOR_BASE = $(EXTRALIBS) \ | ||
+ | # $(EXTRALIBS_XML) $(EXTRALIBS_GUI) | ||
+ | EXTRALIBS_FOR_GUI = $(EXTRALIBS_GUI) | ||
+ | #EXTRALIBS_FOR_GUI = | ||
+ | __font___mac_setfilecmd = @true | ||
+ | #__font___mac_setfilecmd = \ | ||
+ | # $(SETFILE) -t APPL font$(EXEEXT) | ||
+ | #__WXUNIV_DEFINE_p = -D__WXUNIVERSAL__ | ||
+ | #__WXUNIV_DEFINE_p_2 = --define __WXUNIVERSAL__ | ||
+ | #__DEBUG_DEFINE_p = -DwxDEBUG_LEVEL=0 | ||
+ | #__DEBUG_DEFINE_p_2 = --define wxDEBUG_LEVEL=0 | ||
+ | #__EXCEPTIONS_DEFINE_p = -DwxNO_EXCEPTIONS | ||
+ | #__EXCEPTIONS_DEFINE_p_2 = --define wxNO_EXCEPTIONS | ||
+ | #__RTTI_DEFINE_p = -DwxNO_RTTI | ||
+ | #__RTTI_DEFINE_p_2 = --define wxNO_RTTI | ||
+ | #__THREAD_DEFINE_p = -DwxNO_THREADS | ||
+ | #__THREAD_DEFINE_p_2 = --define wxNO_THREADS | ||
+ | __DLLFLAG_p = -DWXUSINGDLL | ||
+ | __DLLFLAG_p_2 = --define WXUSINGDLL | ||
+ | COND_PLATFORM_OS2_1___font___os2_emxbindcmd = $(NM) TP-CAMPro$(EXEEXT) | if grep -q \ | ||
+ | pmwin.763 ; then emxbind -ep TP-CAMPro$(EXEEXT) ; fi | ||
+ | #__font___os2_emxbindcmd = $(COND_PLATFORM_OS2_1___font___os2_emxbindcmd) | ||
+ | #__RCDEFDIR_p_1 = --include-dir \ | ||
+ | # $(LIBDIRNAME)/wx/include/$(TOOLCHAIN_FULLNAME) | ||
+ | #__font___win32rc = font_sample_rc.o | ||
+ | #__font_os2_lib_res = \ | ||
+ | # $(top_srcdir)/include/wx/os2/wx.res | ||
+ | #__font_app_Contents_PkgInfo___depname \ | ||
+ | # = font.app/Contents/PkgInfo | ||
+ | #__font_bundle___depname = font_bundle | ||
+ | #____font_BUNDLE_TGT_REF_DEP = \ | ||
+ | # $(__font_app_Contents_PkgInfo___depname) | ||
+ | #____font_BUNDLE_TGT_REF_DEP \ | ||
+ | # = $(__font_app_Contents_PkgInfo___depname) | ||
+ | #____font_BUNDLE_TGT_REF_DEP \ | ||
+ | # = $(__font_app_Contents_PkgInfo___depname) | ||
+ | #____font_BUNDLE_TGT_REF_DEP \ | ||
+ | # = $(__font_app_Contents_PkgInfo___depname) | ||
+ | #____font_BUNDLE_TGT_REF_DEP = \ | ||
+ | # $(__font_app_Contents_PkgInfo___depname) | ||
+ | COND_MONOLITHIC_0___WXLIB_CORE_p = \ | ||
+ | -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core-$(WX_RELEASE)$(HOST_SUFFIX) | ||
+ | __WXLIB_CORE_p = $(COND_MONOLITHIC_0___WXLIB_CORE_p) | ||
+ | COND_MONOLITHIC_0___WXLIB_BASE_p = \ | ||
+ | -lwx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) | ||
+ | __WXLIB_BASE_p = $(COND_MONOLITHIC_0___WXLIB_BASE_p) | ||
+ | COND_MONOLITHIC_1___WXLIB_MONO_p = \ | ||
+ | -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) | ||
+ | #__WXLIB_MONO_p = $(COND_MONOLITHIC_1___WXLIB_MONO_p) | ||
+ | #__LIB_SCINTILLA_IF_MONO_p \ | ||
+ | # = \ | ||
+ | # -lwxscintilla$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) | ||
+ | #__LIB_TIFF_p \ | ||
+ | # = \ | ||
+ | # -lwxtiff$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) | ||
+ | #__LIB_JPEG_p \ | ||
+ | # = \ | ||
+ | # -lwxjpeg$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) | ||
+ | #__LIB_PNG_p \ | ||
+ | # = \ | ||
+ | # -lwxpng$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) | ||
+ | #__LIB_ZLIB_p = \ | ||
+ | # -lwxzlib$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) | ||
+ | COND_wxUSE_REGEX_builtin___LIB_REGEX_p = \ | ||
+ | -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) | ||
+ | __LIB_REGEX_p = $(COND_wxUSE_REGEX_builtin___LIB_REGEX_p) | ||
+ | #__LIB_EXPAT_p = \ | ||
+ | # -lwxexpat$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) | ||
+ | |||
+ | ### Targets: ### | ||
+ | |||
+ | all: TP-CAMPro$(EXEEXT) $(__font_bundle___depname) | ||
+ | |||
+ | install: | ||
+ | |||
+ | uninstall: | ||
+ | |||
+ | install-strip: install | ||
+ | |||
+ | clean: | ||
+ | rm -rf ./.deps ./.pch | ||
+ | rm -f ./*.o | ||
+ | rm -f TP-CAMPro$(EXEEXT) | ||
+ | rm -rf font.app | ||
+ | |||
+ | distclean: clean | ||
+ | rm -f config.cache config.log config.status bk-deps bk-make-pch shared-ld-sh Makefile | ||
+ | |||
+ | TP-CAMPro$(EXEEXT): $(MINIMAL_OBJECTS) $(__font___win32rc) | ||
+ | $(CXX) -o $@ $(MINIMAL_OBJECTS) -L$(LIBDIRNAME) $(LDFLAGS_GUI) $(SAMPLES_RPATH_FLAG) $(LDFLAGS) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(EXTRALIBS_FOR_GUI) $(__LIB_ZLIB_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE) $(LIBS) | ||
+ | |||
+ | $(__font___mac_setfilecmd) | ||
+ | $(__font___os2_emxbindcmd) | ||
+ | |||
+ | #font.app/Contents/PkgInfo: font$(EXEEXT) $(top_srcdir)/src/osx/carbon/Info.plist.in $(top_srcdir)/src/osx/carbon/wxmac.icns | ||
+ | # mkdir -p font.app/Contents | ||
+ | # mkdir -p font.app/Contents/MacOS | ||
+ | # mkdir -p font.app/Contents/Resources | ||
+ | # | ||
+ | # | ||
+ | # sed -e "s/IDENTIFIER/`echo $(srcdir) | sed -e 's,\.\./,,g' | sed -e 's,/,.,g'`/" \ | ||
+ | # -e "s/EXECUTABLE/font/" \ | ||
+ | # -e "s/VERSION/$(WX_VERSION)/" \ | ||
+ | # $(top_srcdir)/src/osx/carbon/Info.plist.in >font.app/Contents/Info.plist | ||
+ | # | ||
+ | # | ||
+ | # /bin/echo "APPL????" >font.app/Contents/PkgInfo | ||
+ | # | ||
+ | # | ||
+ | # ln -f font$(EXEEXT) font.app/Contents/MacOS/font | ||
+ | # | ||
+ | # | ||
+ | # cp -f $(top_srcdir)/src/osx/carbon/wxmac.icns font.app/Contents/Resources/wxmac.icns | ||
+ | |||
+ | #font_bundle: $(____font_BUNDLE_TGT_REF_DEP) | ||
+ | |||
+ | font_sample_rc.o: $(srcdir)/../../samples/sample.rc | ||
+ | $(WINDRES) -i$< -o$@ --define __WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_2) $(__DEBUG_DEFINE_p_2) $(__EXCEPTIONS_DEFINE_p_2) $(__RTTI_DEFINE_p_2) $(__THREAD_DEFINE_p_2) --include-dir $(srcdir) $(__DLLFLAG_p_2) --include-dir $(srcdir)/../../samples $(__RCDEFDIR_p_1) --include-dir $(top_srcdir)/include | ||
+ | |||
+ | .cpp.o: | ||
+ | $(CXXC) $(MINIMAL_CXXFLAGS) -g -c $< | ||
+ | |||
+ | TP-CAMPro.o: $(srcdir)/TP-CAMPro.cpp $(srcdir)/CLApp.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h | ||
+ | stdafx.o: $(srcdir)/stdafx.cpp $(srcdir)/stdafx.h | ||
+ | CLApp.o: $(srcdir)/CLApp.cpp $(srcdir)/stdafx.h | ||
+ | CLFrame.o: $(srcdir)/CLFrame.cpp $(srcdir)/stdafx.h | ||
+ | MainPanel.o: $(srcdir)/MainPanel.cpp $(srcdir)/CLFrame.h $(srcdir)/Bitmap3Button.h $(srcdir)/BatteryDisplay.h $(srcdir)/DateDisplay.h $(srcdir)/stdafx.h | ||
+ | OperatorSetPanel.o: $(srcdir)/OperatorSetPanel.cpp $(srcdir)/CLFrame.h $(srcdir)/stdafx.h | ||
+ | Bitmap3Button.o: $(srcdir)/Bitmap3Button.cpp $(srcdir)/Bitmap3Button.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h | ||
+ | Bitmap3ButtonEx.o: $(srcdir)/Bitmap3ButtonEx.cpp $(srcdir)/Bitmap3ButtonEx.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h | ||
+ | Bitmap2Button.o: $(srcdir)/Bitmap2Button.cpp $(srcdir)/Bitmap2Button.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h | ||
+ | Bitmap2ButtonEx.o: $(srcdir)/Bitmap2ButtonEx.cpp $(srcdir)/Bitmap2ButtonEx.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h | ||
+ | CameraFullPanel.o: $(srcdir)/CameraFullPanel.cpp $(srcdir)/CameraFullPanel.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h | ||
+ | CameraSetPanel.o: $(srcdir)/CameraSetPanel.cpp $(srcdir)/CameraSetPanel.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h | ||
+ | DateSetPanel.o: $(srcdir)/DateSetPanel.cpp $(srcdir)/DateSetPanel.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h | ||
+ | EnforcementFullPanel.o: $(srcdir)/EnforcementFullPanel.cpp $(srcdir)/EnforcementFullPanel.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h | ||
+ | EnforcementPanel.o: $(srcdir)/EnforcementPanel.cpp $(srcdir)/EnforcementPanel.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h | ||
+ | EnforcementSetPanel.o: $(srcdir)/EnforcementSetPanel.cpp $(srcdir)/EnforcementSetPanel.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h | ||
+ | FileMngFullPanel.o: $(srcdir)/FileMngFullPanel.cpp $(srcdir)/FileMngFullPanel.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h | ||
+ | FileMngPanel.o: $(srcdir)/FileMngPanel.cpp $(srcdir)/FileMngPanel.h $(srcdir)/CaptureImage.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h | ||
+ | LoginPanel.o: $(srcdir)/LoginPanel.cpp $(srcdir)/LoginPanel.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h | ||
+ | BatteryDisplay.o: $(srcdir)/BatteryDisplay.cpp $(srcdir)/BatteryDisplay.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h | ||
+ | DateDisplay.o: $(srcdir)/DateDisplay.cpp $(srcdir)/DateDisplay.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h | ||
+ | KeyboardDialog.o: $(srcdir)/KeyboardDialog.cpp $(srcdir)/KeyboardDialog.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h | ||
+ | KeyboardEngPanel.o: $(srcdir)/KeyboardEngPanel.cpp $(srcdir)/KeyboardEngPanel.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h | ||
+ | MoviePanel.o: $(srcdir)/MoviePanel.cpp $(srcdir)/MoviePanel.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h | ||
+ | Global.o: $(srcdir)/Global.cpp $(srcdir)/Global.h $(srcdir)/stdafx.h | ||
+ | NumberPadDialog.o: $(srcdir)/NumberPadDialog.cpp $(srcdir)/NumberPadDialog.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h | ||
+ | NumberPadPanel.o: $(srcdir)/NumberPadPanel.cpp $(srcdir)/NumberPadPanel.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h | ||
+ | Controller.o: $(srcdir)/Controller.cpp $(srcdir)/Controller.h $(srcdir)/stdafx.h | ||
+ | |||
+ | |||
+ | # Include dependency info, if present: | ||
+ | -include ./.deps/*.d | ||
+ | |||
+ | .PHONY: all install uninstall clean distclean font_bundle | ||
== 에러 처리 == | == 에러 처리 == |
2015년 5월 25일 (월) 20:13 판
wxWidgets 설치
- wxWidgets 설치
- wxWidgets 3.0.2 를 설치한다.
- http://www.tarsiersoft.com/addinfo/wxWidgetsInstall.php 문서를 참고하자.
- ../configure 를 이용해서 옵션을 설정할 수 있다. (이 방식은 모든 리눅스 셋업에서 쓰인다.)
- 설정할 옵션이 없더라도, ../configure 를 실행해야 상황에 맞게 빌드 셋업 파일들이 만들어진다.
- mkdir 을 통해 폴더를 생성해서, 그 안에서 빌드를하면, 결과 파일들이 그 폴더안에 저장된다.
- 즉, 여러 방식을 빌드를 폴더별로 나눠저 관리할 수 있다. 예를들어, debug, release 빌드들을 나눌 수 있다.
- wx-config 명령어로 현재 wxWidgets 빌드 상태를 확인할 수 있다.
- make로 빌드할 때는 문제없지만, make install 명령에서부터는 관리자 계정으로 실행해야 한다.
su password ~ mkdir buildr cd buildr ../configure make make install ldconfig
Makefile 만들기.
- 우선 sample에 있는 makefile을 가져와서 수정하면서 쓰자.
- Makefile 매크로들
- top_srcdir : wxWidgets 경로
- src_dir : 현재 소스파일 경로. Makefile 파일에서 상대경로를 뜻하며, 현재 같은 위치에 있기 때문에 . 로 설정된다.
- CXX : 컴파일 버젼
- CXXFLAGS : 컴파일 옵션
- wx_top_builddir: wxWidgets 경로 (top_srcdir 과 같은 용도로 쓰이고 있어서, 정리가 필요하다)
- 신경써서 수정해야 될 부분
- srcdir
- sample하고 소스파일 경로가 다르니 수정해야 한다.
- top_srcdir
- 현재 프로젝트 소스에서, 상대경로로 wxWidgets 라이브러리 경로를 설정해주자.
- ~OBJECTS
- 새 파일이 추가될 때마다, 파일이름을 추가하자.
- 소스 의존성 관계를 파일이 추가될 때마다, 추가하자.
- srcdir
- 예제 Makefile
- =========================================================================
- This makefile was generated by
- Bakefile 0.2.9 (http://www.bakefile.org)
- Do not modify, all changes will be overwritten!
- =========================================================================
prefix = /usr/local
exec_prefix = ${prefix}
datarootdir = ${prefix}/share
INSTALL = /usr/bin/install -c
EXEEXT =
WINDRES =
SETFILE =
NM = nm
BK_DEPS = /home/odroid/work/wxWidgets-3.0.2/buildr/bk-deps
srcdir = .
top_srcdir = ../../wxWidgets-3.0.2
LIBS = -lz -ldl -lm
LDFLAGS_GUI =
CXX = g++
CXXFLAGS = -DWX_PRECOMP -pthread -O2 -fno-strict-aliasing -pthread -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/libpng12 -pthread -I/usr/local/include/pango-1.0 -I/usr/include/gtk-unix-print-2.0 -I/usr/include/gtk-2.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/harfbuzz -fvisibility=hidden -fvisibility-inlines-hidden
CPPFLAGS = -D_FILE_OFFSET_BITS=64 -I${wx_top_builddir}/lib/wx/include/gtk2-unicode-3.0 -I${top_srcdir}/include -pthread -I/usr/local/include/pango-1.0 -I/usr/include/gtk-2.0 -I/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/harfbuzz -pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/libxml2
LDFLAGS = -pthread
WX_LIB_FLAVOUR =
TOOLKIT = GTK
TOOLKIT_LOWERCASE = gtk
TOOLKIT_VERSION = 2
TOOLCHAIN_FULLNAME = gtk2-unicode-3.0
EXTRALIBS = -pthread -Wl,--version-script,$(wx_top_builddir)/version-script -lz -ldl -lm
EXTRALIBS_XML = -lexpat
EXTRALIBS_GUI = -pthread -L/usr/local/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lgobject-2.0 -lfreetype -lgthread-2.0 -lglib-2.0 -lX11 -lXxf86vm -lSM -L/usr/local/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lgobject-2.0 -lglib-2.0 -lfreetype -lnotify -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lpng -lz -ljpeg -ltiff
CXXWARNINGS = -Wall -Wundef -Wunused-parameter -Wno-ctor-dtor-privacy -Woverloaded-virtual
HOST_SUFFIX =
SAMPLES_RPATH_FLAG = -Wl,-rpath,$(wx_top_builddir)/lib
wx_top_builddir = /home/odroid/work/wxWidgets-3.0.2/buildr
- Variables: ###
DESTDIR = WX_RELEASE = 3.0 WX_VERSION = $(WX_RELEASE).2 LIBDIRNAME = $(wx_top_builddir)/lib MINIMAL_CXXFLAGS = -D__WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) \ $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) \ -I$(srcdir) $(__DLLFLAG_p) -I$(srcdir)/../../samples $(CXXWARNINGS) \ $(CPPFLAGS) $(CXXFLAGS) MINIMAL_OBJECTS = \ $(__font___win32rc) \ $(__font_os2_lib_res) \ TP-CAMPro.o \ stdafx.o \ CLApp.o \ CLFrame.o \ MainPanel.o \ OperatorSetPanel.o \ Bitmap3Button.o \ Bitmap3ButtonEx.o \ Bitmap2Button.o \ Bitmap2ButtonEx.o \ CameraFullPanel.o \ CameraSetPanel.o \ DateSetPanel.o \ EnforcementFullPanel.o \ EnforcementPanel.o \ EnforcementSetPanel.o \ FileMngFullPanel.o \ FileMngPanel.o \ LoginPanel.o \ BatteryDisplay.o \ DateDisplay.o \ KeyboardDialog.o \ KeyboardEngPanel.o \ MoviePanel.o \ Global.o \ NumberPadDialog.o \ NumberPadPanel.o \ Controller.o
SRCS = $(MINIMAL_OBJECTS:.o=.cpp)
- Conditionally set variables: ###
- CXXC = $(CXX)
CXXC = $(BK_DEPS) $(CXX)
- PORTNAME = base
PORTNAME = $(TOOLKIT_LOWERCASE)$(TOOLKIT_VERSION)
- WXBASEPORT = _carbon
- WXDEBUGFLAG = d
WXUNICODEFLAG = u
- WXUNIVNAME = univ
EXTRALIBS_FOR_BASE = $(EXTRALIBS)
- EXTRALIBS_FOR_BASE = $(EXTRALIBS) \
- $(EXTRALIBS_XML) $(EXTRALIBS_GUI)
EXTRALIBS_FOR_GUI = $(EXTRALIBS_GUI)
- EXTRALIBS_FOR_GUI =
__font___mac_setfilecmd = @true
- __font___mac_setfilecmd = \
- $(SETFILE) -t APPL font$(EXEEXT)
- __WXUNIV_DEFINE_p = -D__WXUNIVERSAL__
- __WXUNIV_DEFINE_p_2 = --define __WXUNIVERSAL__
- __DEBUG_DEFINE_p = -DwxDEBUG_LEVEL=0
- __DEBUG_DEFINE_p_2 = --define wxDEBUG_LEVEL=0
- __EXCEPTIONS_DEFINE_p = -DwxNO_EXCEPTIONS
- __EXCEPTIONS_DEFINE_p_2 = --define wxNO_EXCEPTIONS
- __RTTI_DEFINE_p = -DwxNO_RTTI
- __RTTI_DEFINE_p_2 = --define wxNO_RTTI
- __THREAD_DEFINE_p = -DwxNO_THREADS
- __THREAD_DEFINE_p_2 = --define wxNO_THREADS
__DLLFLAG_p = -DWXUSINGDLL __DLLFLAG_p_2 = --define WXUSINGDLL COND_PLATFORM_OS2_1___font___os2_emxbindcmd = $(NM) TP-CAMPro$(EXEEXT) | if grep -q \ pmwin.763 ; then emxbind -ep TP-CAMPro$(EXEEXT) ; fi
- __font___os2_emxbindcmd = $(COND_PLATFORM_OS2_1___font___os2_emxbindcmd)
- __RCDEFDIR_p_1 = --include-dir \
- $(LIBDIRNAME)/wx/include/$(TOOLCHAIN_FULLNAME)
- __font___win32rc = font_sample_rc.o
- __font_os2_lib_res = \
- $(top_srcdir)/include/wx/os2/wx.res
- __font_app_Contents_PkgInfo___depname \
- = font.app/Contents/PkgInfo
- __font_bundle___depname = font_bundle
- ____font_BUNDLE_TGT_REF_DEP = \
- $(__font_app_Contents_PkgInfo___depname)
- ____font_BUNDLE_TGT_REF_DEP \
- = $(__font_app_Contents_PkgInfo___depname)
- ____font_BUNDLE_TGT_REF_DEP \
- = $(__font_app_Contents_PkgInfo___depname)
- ____font_BUNDLE_TGT_REF_DEP \
- = $(__font_app_Contents_PkgInfo___depname)
- ____font_BUNDLE_TGT_REF_DEP = \
- $(__font_app_Contents_PkgInfo___depname)
COND_MONOLITHIC_0___WXLIB_CORE_p = \ -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core-$(WX_RELEASE)$(HOST_SUFFIX) __WXLIB_CORE_p = $(COND_MONOLITHIC_0___WXLIB_CORE_p) COND_MONOLITHIC_0___WXLIB_BASE_p = \ -lwx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) __WXLIB_BASE_p = $(COND_MONOLITHIC_0___WXLIB_BASE_p) COND_MONOLITHIC_1___WXLIB_MONO_p = \ -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
- __WXLIB_MONO_p = $(COND_MONOLITHIC_1___WXLIB_MONO_p)
- __LIB_SCINTILLA_IF_MONO_p \
- = \
- -lwxscintilla$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
- __LIB_TIFF_p \
- = \
- -lwxtiff$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
- __LIB_JPEG_p \
- = \
- -lwxjpeg$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
- __LIB_PNG_p \
- = \
- -lwxpng$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
- __LIB_ZLIB_p = \
- -lwxzlib$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
COND_wxUSE_REGEX_builtin___LIB_REGEX_p = \ -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) __LIB_REGEX_p = $(COND_wxUSE_REGEX_builtin___LIB_REGEX_p)
- __LIB_EXPAT_p = \
- -lwxexpat$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
- Targets: ###
all: TP-CAMPro$(EXEEXT) $(__font_bundle___depname)
install:
uninstall:
install-strip: install
clean: rm -rf ./.deps ./.pch rm -f ./*.o rm -f TP-CAMPro$(EXEEXT) rm -rf font.app
distclean: clean rm -f config.cache config.log config.status bk-deps bk-make-pch shared-ld-sh Makefile
TP-CAMPro$(EXEEXT): $(MINIMAL_OBJECTS) $(__font___win32rc) $(CXX) -o $@ $(MINIMAL_OBJECTS) -L$(LIBDIRNAME) $(LDFLAGS_GUI) $(SAMPLES_RPATH_FLAG) $(LDFLAGS) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(EXTRALIBS_FOR_GUI) $(__LIB_ZLIB_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE) $(LIBS)
$(__font___mac_setfilecmd) $(__font___os2_emxbindcmd)
- font.app/Contents/PkgInfo: font$(EXEEXT) $(top_srcdir)/src/osx/carbon/Info.plist.in $(top_srcdir)/src/osx/carbon/wxmac.icns
- mkdir -p font.app/Contents
- mkdir -p font.app/Contents/MacOS
- mkdir -p font.app/Contents/Resources
- sed -e "s/IDENTIFIER/`echo $(srcdir) | sed -e 's,\.\./,,g' | sed -e 's,/,.,g'`/" \
- -e "s/EXECUTABLE/font/" \
- -e "s/VERSION/$(WX_VERSION)/" \
- $(top_srcdir)/src/osx/carbon/Info.plist.in >font.app/Contents/Info.plist
- /bin/echo "APPL????" >font.app/Contents/PkgInfo
- ln -f font$(EXEEXT) font.app/Contents/MacOS/font
- cp -f $(top_srcdir)/src/osx/carbon/wxmac.icns font.app/Contents/Resources/wxmac.icns
- font_bundle: $(____font_BUNDLE_TGT_REF_DEP)
font_sample_rc.o: $(srcdir)/../../samples/sample.rc $(WINDRES) -i$< -o$@ --define __WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_2) $(__DEBUG_DEFINE_p_2) $(__EXCEPTIONS_DEFINE_p_2) $(__RTTI_DEFINE_p_2) $(__THREAD_DEFINE_p_2) --include-dir $(srcdir) $(__DLLFLAG_p_2) --include-dir $(srcdir)/../../samples $(__RCDEFDIR_p_1) --include-dir $(top_srcdir)/include
.cpp.o: $(CXXC) $(MINIMAL_CXXFLAGS) -g -c $<
TP-CAMPro.o: $(srcdir)/TP-CAMPro.cpp $(srcdir)/CLApp.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h stdafx.o: $(srcdir)/stdafx.cpp $(srcdir)/stdafx.h CLApp.o: $(srcdir)/CLApp.cpp $(srcdir)/stdafx.h CLFrame.o: $(srcdir)/CLFrame.cpp $(srcdir)/stdafx.h MainPanel.o: $(srcdir)/MainPanel.cpp $(srcdir)/CLFrame.h $(srcdir)/Bitmap3Button.h $(srcdir)/BatteryDisplay.h $(srcdir)/DateDisplay.h $(srcdir)/stdafx.h OperatorSetPanel.o: $(srcdir)/OperatorSetPanel.cpp $(srcdir)/CLFrame.h $(srcdir)/stdafx.h Bitmap3Button.o: $(srcdir)/Bitmap3Button.cpp $(srcdir)/Bitmap3Button.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h Bitmap3ButtonEx.o: $(srcdir)/Bitmap3ButtonEx.cpp $(srcdir)/Bitmap3ButtonEx.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h Bitmap2Button.o: $(srcdir)/Bitmap2Button.cpp $(srcdir)/Bitmap2Button.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h Bitmap2ButtonEx.o: $(srcdir)/Bitmap2ButtonEx.cpp $(srcdir)/Bitmap2ButtonEx.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h CameraFullPanel.o: $(srcdir)/CameraFullPanel.cpp $(srcdir)/CameraFullPanel.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h CameraSetPanel.o: $(srcdir)/CameraSetPanel.cpp $(srcdir)/CameraSetPanel.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h DateSetPanel.o: $(srcdir)/DateSetPanel.cpp $(srcdir)/DateSetPanel.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h EnforcementFullPanel.o: $(srcdir)/EnforcementFullPanel.cpp $(srcdir)/EnforcementFullPanel.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h EnforcementPanel.o: $(srcdir)/EnforcementPanel.cpp $(srcdir)/EnforcementPanel.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h EnforcementSetPanel.o: $(srcdir)/EnforcementSetPanel.cpp $(srcdir)/EnforcementSetPanel.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h FileMngFullPanel.o: $(srcdir)/FileMngFullPanel.cpp $(srcdir)/FileMngFullPanel.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h FileMngPanel.o: $(srcdir)/FileMngPanel.cpp $(srcdir)/FileMngPanel.h $(srcdir)/CaptureImage.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h LoginPanel.o: $(srcdir)/LoginPanel.cpp $(srcdir)/LoginPanel.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h BatteryDisplay.o: $(srcdir)/BatteryDisplay.cpp $(srcdir)/BatteryDisplay.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h DateDisplay.o: $(srcdir)/DateDisplay.cpp $(srcdir)/DateDisplay.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h KeyboardDialog.o: $(srcdir)/KeyboardDialog.cpp $(srcdir)/KeyboardDialog.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h KeyboardEngPanel.o: $(srcdir)/KeyboardEngPanel.cpp $(srcdir)/KeyboardEngPanel.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h MoviePanel.o: $(srcdir)/MoviePanel.cpp $(srcdir)/MoviePanel.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h Global.o: $(srcdir)/Global.cpp $(srcdir)/Global.h $(srcdir)/stdafx.h NumberPadDialog.o: $(srcdir)/NumberPadDialog.cpp $(srcdir)/NumberPadDialog.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h NumberPadPanel.o: $(srcdir)/NumberPadPanel.cpp $(srcdir)/NumberPadPanel.h $(srcdir)/CLFrame.h $(srcdir)/stdafx.h Controller.o: $(srcdir)/Controller.cpp $(srcdir)/Controller.h $(srcdir)/stdafx.h
- Include dependency info, if present:
-include ./.deps/*.d
.PHONY: all install uninstall clean distclean font_bundle
에러 처리
- wxDECLARE_EVENT_TABLE 에러가 발생할 때
- 낮은 버전은 wxWidgets을 사용할 때, 이런 문제가 발생한다.
- http://stackoverflow.com/questions/28210977/error-while-declaration-of-wxdeclare-event-table