notepad-plus-plus-legacy/PowerEditor/gcc/makefile
harrybharry d385390709 Rename SysMsg->Common , force include in vc2003 and makefile.
Change default directory hidden option, tries to use newer API call.
Made compilable again with MinGW, exception handling disabled when compiled with makefile.
Change basic_string<TCHAR> to generic_string.
Fix bug with CPP lexer keyword list.
Add unicode Configurations to vc2003 project file.

git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository@311 f5eea248-9336-0410-98b8-ebc06183d4e3
2008-09-09 22:35:19 +00:00

204 lines
7.9 KiB
Makefile

# this file is part of notepad++
# Copyright (C)2008 Harry Bruin <harrybharry@users.sourceforge.net>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
# Directories:
NPP_DIR = ../src
SCI_DIR = ../../scintilla/include
GCC_DIR = .
GCCINCLUDE_DIR = $(GCC_DIR)/include
#MISC:
MISC_DIR = $(NPP_DIR)/MISC
COMMON_DIR = $(MISC_DIR)/Common
EXCEPTION_DIR = $(MISC_DIR)/Exception
PLUGINS_DIR = $(MISC_DIR)/PluginsManager
PROCESS_DIR = $(MISC_DIR)/Process
REGEXT_DIR = $(MISC_DIR)/RegExt
#ScintillaComponent:
SCINT_DIR = $(NPP_DIR)/ScitillaComponent
#TinyXml
TIXML_DIR = $(NPP_DIR)/TinyXml
#WinControls
WIN_DIR = $(NPP_DIR)/WinControls
ABOUT_DIR = $(WIN_DIR)/AboutDlg
CONTEXT_DIR = $(WIN_DIR)/ContextMenu
COLOUR_DIR = $(WIN_DIR)/ColourPicker
DOCKING_DIR = $(WIN_DIR)/DockingWnd
GRID_DIR = $(WIN_DIR)/Grid
IMLIST_DIR = $(WIN_DIR)/ImageListSet
OPENSAVE_DIR = $(WIN_DIR)/OpenSaveFileDialog
# PANNER_DIR = $(WIN_DIR)/Panner
PREFERENCE_DIR = $(WIN_DIR)/Preference
SHORTCUT_DIR = $(WIN_DIR)/shortcut
SPLITTER_DIR = $(WIN_DIR)/SplitterContainer
STATICDLG_DIR = $(WIN_DIR)/StaticDialog
RUNDLG_DIR = $(STATICDLG_DIR)/RunDlg
STATUSBAR_DIR = $(WIN_DIR)/StatusBar
TABBAR_DIR = $(WIN_DIR)/TabBar
TASKLIST_DIR = $(WIN_DIR)/TaskList
TOOLBAR_DIR = $(WIN_DIR)/ToolBar
TOOLTIP_DIR = $(WIN_DIR)/ToolTip
TRAYICON_DIR = $(WIN_DIR)/TrayIcon
TREEVIEW_DIR = $(WIN_DIR)/TreeView
WINDOWSDLG_DIR = $(WIN_DIR)/WindowsDlg
# Sources:
SRC_NPP = $(wildcard $(NPP_DIR)/*.cpp)
SRC_GCCINCLUDE = $(wildcard $(GCCINCLUDE_DIR)/*.cpp)
#MISC
SRC_MISC = $(wildcard $(MISC_DIR)/*.cpp)
SRC_COMMON = $(wildcard $(COMMON_DIR)/*.cpp)
SRC_EXCEPTION = $(wildcard $(EXCEPTION_DIR)/*.cpp)
SRC_PLUGINS = $(wildcard $(PLUGINS_DIR)/*.cpp)
SRC_PROCESS = $(wildcard $(PROCESS_DIR)/*.cpp)
SRC_REGEXT = $(wildcard $(REGEXT_DIR)/*.cpp)
#ScintillaComponent
SRC_SCINT = $(wildcard $(SCINT_DIR)/*.cpp)
#TinyXml
SRC_TIXML = $(wildcard $(TIXML_DIR)/*.cpp)
#WinControls
SRC_WIN = $(wildcard $(WIN_DIR)/*.cpp)
SRC_ABOUT = $(wildcard $(ABOUT_DIR)/*.cpp)
SRC_CONTEXT = $(wildcard $(CONTEXT_DIR)/*.cpp)
SRC_COLOUR = $(wildcard $(COLOUR_DIR)/*.cpp)
SRC_DOCKING = $(wildcard $(DOCKING_DIR)/*.cpp)
SRC_GRID = $(wildcard $(GRID_DIR)/*.cpp)
SRC_IMLIST = $(wildcard $(IMLIST_DIR)/*.cpp)
SRC_OPENSAVE = $(wildcard $(OPENSAVE_DIR)/*.cpp)
SRC_PREFERENCE = $(wildcard $(PREFERENCE_DIR)/*.cpp)
SRC_SHORTCUT = $(wildcard $(SHORTCUT_DIR)/*.cpp)
SRC_SPLITTER = $(wildcard $(SPLITTER_DIR)/*.cpp)
SRC_STATICDLG = $(wildcard $(STATICDLG_DIR)/*.cpp)
SRC_RUNDLG = $(wildcard $(RUNDLG_DIR)/*.cpp)
SRC_STATUSBAR = $(wildcard $(STATUSBAR_DIR)/*.cpp)
SRC_TABBAR = $(wildcard $(TABBAR_DIR)/*.cpp)
SRC_TASKLIST = $(wildcard $(TASKLIST_DIR)/*.cpp)
SRC_TOOLBAR = $(wildcard $(TOOLBAR_DIR)/*.cpp)
SRC_TOOLTIP = $(wildcard $(TOOLTIP_DIR)/*.cpp)
SRC_TRAYICON = $(wildcard $(TRAYICON_DIR)/*.cpp)
SRC_TREEVIEW = $(wildcard $(TREEVIEW_DIR)/*.cpp)
SRC_WINDOWSDLG = $(wildcard $(WINDOWSDLG_DIR)/*.cpp)
# Objects:
OBJ_NPP = $(patsubst %.cpp,%.o,$(SRC_NPP))
OBJ_GCCINCLUDE = $(patsubst %.cpp,%.o,$(SRC_GCCINCLUDE))
#MISC
OBJ_MISC = $(patsubst %.cpp,%.o,$(SRC_MISC))
OBJ_COMMON = $(patsubst %.cpp,%.o,$(SRC_COMMON))
OBJ_EXCEPTION = $(patsubst %.cpp,%.o,$(SRC_EXCEPTION))
OBJ_PLUGINS = $(patsubst %.cpp,%.o,$(SRC_PLUGINS))
OBJ_PROCESS = $(patsubst %.cpp,%.o,$(SRC_PROCESS))
OBJ_REGEXT = $(patsubst %.cpp,%.o,$(SRC_REGEXT))
#ScintillaComponent
OBJ_SCINT = $(patsubst %.cpp,%.o,$(SRC_SCINT))
#TinyXml
OBJ_TIXML = $(patsubst %.cpp,%.o,$(SRC_TIXML))
#WinControls
OBJ_WIN = $(patsubst %.cpp,%.o,$(SRC_WIN))
OBJ_ABOUT = $(patsubst %.cpp,%.o,$(SRC_ABOUT))
OBJ_CONTEXT = $(patsubst %.cpp,%.o,$(SRC_CONTEXT))
OBJ_COLOUR = $(patsubst %.cpp,%.o,$(SRC_COLOUR))
OBJ_DOCKING = $(patsubst %.cpp,%.o,$(SRC_DOCKING))
OBJ_GRID = $(patsubst %.cpp,%.o,$(SRC_GRID))
OBJ_IMLIST = $(patsubst %.cpp,%.o,$(SRC_IMLIST))
OBJ_OPENSAVE = $(patsubst %.cpp,%.o,$(SRC_OPENSAVE))
OBJ_PREFERENCE = $(patsubst %.cpp,%.o,$(SRC_PREFERENCE))
OBJ_SHORTCUT = $(patsubst %.cpp,%.o,$(SRC_SHORTCUT))
OBJ_SPLITTER = $(patsubst %.cpp,%.o,$(SRC_SPLITTER))
OBJ_STATICDLG = $(patsubst %.cpp,%.o,$(SRC_STATICDLG))
OBJ_RUNDLG = $(patsubst %.cpp,%.o,$(SRC_RUNDLG))
OBJ_STATUSBAR = $(patsubst %.cpp,%.o,$(SRC_STATUSBAR))
OBJ_TABBAR = $(patsubst %.cpp,%.o,$(SRC_TABBAR))
OBJ_TASKLIST = $(patsubst %.cpp,%.o,$(SRC_TASKLIST))
OBJ_TOOLBAR = $(patsubst %.cpp,%.o,$(SRC_TOOLBAR))
OBJ_TOOLTIP = $(patsubst %.cpp,%.o,$(SRC_TOOLTIP))
OBJ_TRAYICON = $(patsubst %.cpp,%.o,$(SRC_TRAYICON))
OBJ_TREEVIEW = $(patsubst %.cpp,%.o,$(SRC_TREEVIEW))
OBJ_WINDOWSDLG = $(patsubst %.cpp,%.o,$(SRC_WINDOWSDLG))
# Collections
DIRS_WIN = $(WIN_DIR) $(ABOUT_DIR) $(CONTEXT_DIR) $(COLOUR_DIR) $(DOCKING_DIR) $(GRID_DIR) $(IMLIST_DIR) $(OPENSAVE_DIR) $(PREFERENCE_DIR) $(SHORTCUT_DIR) $(SPLITTER_DIR) $(STATICDLG_DIR) $(RUNDLG_DIR) $(STATUSBAR_DIR) $(TABBAR_DIR) $(TASKLIST_DIR) $(TOOLBAR_DIR) $(TOOLTIP_DIR) $(TRAYICON_DIR) $(TREEVIEW_DIR) $(WINDOWSDLG_DIR)
DIRS_TIXML = $(TIXML_DIR)
DIRS_SCINT = $(SCINT_DIR)
DIRS_MISC = $(MISC_DIR) $(COMMON_DIR) $(EXCEPTION_DIR) $(PLUGINS_DIR) $(PROCESS_DIR) $(REGEXT_DIR)
DIRS = $(NPP_DIR) $(DIRS_WIN) $(DIRS_TIXML) $(DIRS_SCINT) $(DIRS_MISC) $(SCI_DIR)
SRCS_WIN = $(SRC_WIN) $(SRC_ABOUT) $(SRC_CONTEXT) $(SRC_COLOUR) $(SRC_DOCKING) $(SRC_GRID) $(SRC_IMLIST) $(SRC_OPENSAVE) $(SRC_PREFERENCE) $(SRC_SHORTCUT) $(SRC_SPLITTER) $(SRC_STATICDLG) $(SRC_RUNDLG) $(SRC_STATUSBAR) $(SRC_TABBAR) $(SRC_TASKLIST) $(SRC_TOOLBAR) $(SRC_TOOLTIP) $(SRC_TRAYICON) $(SRC_TREEVIEW) $(SRC_WINDOWSDLG)
SRCS_TIXML = $(SRC_TIXML)
SRCS_SCINT = $(SRC_SCINT)
SRCS_MISC = $(SRC_MISC) $(SRC_COMMON) $(SRC_EXCEPTION) $(SRC_PLUGINS) $(SRC_PROCESS) $(SRC_REGEXT)
SRCS = $(SRC_NPP) $(SRCS_WIN) $(SRCS_TIXML) $(SRCS_SCINT) $(SRCS_MISC) $(SRC_GCCINCLUDE)
OBJS_WIN = $(OBJ_WIN) $(OBJ_ABOUT) $(OBJ_CONTEXT) $(OBJ_COLOUR) $(OBJ_DOCKING) $(OBJ_GRID) $(OBJ_IMLIST) $(OBJ_OPENSAVE) $(OBJ_PREFERENCE) $(OBJ_SHORTCUT) $(OBJ_SPLITTER) $(OBJ_STATICDLG) $(OBJ_RUNDLG) $(OBJ_STATUSBAR) $(OBJ_TABBAR) $(OBJ_TASKLIST) $(OBJ_TOOLBAR) $(OBJ_TOOLTIP) $(OBJ_TRAYICON) $(OBJ_TREEVIEW) $(OBJ_WINDOWSDLG)
OBJS_TIXML = $(OBJ_TIXML)
OBJS_SCINT = $(OBJ_SCINT)
OBJS_MISC = $(OBJ_MISC) $(OBJ_COMMON) $(OBJ_EXCEPTION) $(OBJ_PLUGINS) $(OBJ_PROCESS) $(OBJ_REGEXT)
OBJS = $(OBJ_NPP) $(OBJS_WIN) $(OBJS_TIXML) $(OBJS_SCINT) $(OBJS_MISC) $(OBJ_GCCINCLUDE)
# Main resource file
SRC_RES = ./resources.rc
OBJ_RES = $(patsubst %.rc,%.res,$(SRC_RES))
# Parameters
INCLUDESPECIAL = -include./include/various.h -includeCommon.h
# Comment this out for ANSI build
UNICODE = -DUNICODE -D_UNICODE
CXX = g++
#CXXFLAGS = -O2 $(INCLUDESPECIAL)
CXXFLAGS = $(INCLUDESPECIAL) -DTIXML_USE_STL $(UNICODE)
INCLUDES = $(patsubst %,-I%,$(DIRS)) -I./include
LDFLAGS = -Wl,--subsystem,windows
LIBS = -lcomdlg32 -lcomctl32 -lgdi32 -lole32 -loleacc -lshell32 -lshlwapi
RC = windres
OUT_NPP = NotepadPP.exe
EXEC = ../bin/$(OUT_NPP)
all: NotepadPP
# Main Notepad++ rule
NotepadPP: $(OBJS) $(OBJ_RES)
$(CXX) $(CXXFLAGS) $(INCLUDES) $(LDFLAGS) $(OBJS) $(OBJ_RES) -o $(EXEC) $(LIBS)
NotepadPPUnicode: $(OBJS) $(OBJ_RES)
$(CXX) $(CXXFLAGS) $(INCLUDES) $(LDFLAGS) $(OBJS) $(OBJ_RES) -o $(EXEC) $(LIBS)
%.o: %.cpp
$(CXX) $(CXXFLAGS) $(INCLUDES) -c $< -o $@
%.res: %.rc
$(RC) $(INCLUDES) $(UNICODE) --input=$< --output=$@ --input-format=rc --output-format=coff
# Cleanup
clean:
@delete.bat