Есть у меня Makefile, сгенерённый SIPом для его дальнейшей сборки при помощи nmake.
У меня там кое-что не работает, а потому хочу я те действия, которые он делает, проделать вручную, по шагам. Одна беда: я не вполне понимаю некоторые из его действий.
Собственно, вот он:
TARGET = hello.pyd
OFILES = siphellocmodule.obj siphelloHello.obj
HFILES = sipAPIhello.h
CC = cl
CXX = cl
LINK = link
CPPFLAGS = -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -DUNICODE -DWIN32 -I. -ID:\Projects\qml_fuss\LibHello -ID:\Lib\Qt-5.8.0\5.8\msvc2015_64\include -ID:\Lib\Qt-5.8.0\5.8\msvc2015_64\include\QtCore -ID:\Lib\Qt-5.8.0\5.8\msvc2015_64\include\QtGui -ID:\Lib\Qt-5.8.0\5.8\msvc2015_64\include\QtWidgets -IC:\python35\include
CFLAGS = -nologo -Zm200 -Zc:wchar_t- -FS -Zc:strictStrings -O2 -MD -W3 -w44456 -w44457 -w44458
CXXFLAGS = -nologo -Zm200 -Zc:wchar_t- -FS -Zc:strictStrings -D_HAS_EXCEPTIONS=0 -O2 -MD -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577
LFLAGS = /NOLOGO /DYNAMICBASE /NXCOMPAT /DLL /MANIFEST /MANIFESTFILE:$(TARGET).manifest /SUBSYSTEM:WINDOWS /INCREMENTAL:NO
LIBS = /LIBPATH:D:\Lib\Qt-5.8.0\5.8\msvc2015_64\lib /LIBPATH:. /LIBPATH:D:\Projects\qml_fuss\LibHello /LIBPATH:C:\python35\libs LibHello.lib Qt5Core.lib Qt5Gui.lib Qt5Widgets.lib python35.lib
.SUFFIXES: .c .cpp .cc .cxx .C
{.}.cpp{}.obj::
$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -Fo @<<
$<
<<
{.}.cc{}.obj::
$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -Fo @<<
$<
<<
{.}.cxx{}.obj::
$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -Fo @<<
$<
<<
{.}.C{}.obj::
$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -Fo @<<
$<
<<
{.}.c{}.obj::
$(CC) -c $(CFLAGS) $(CPPFLAGS) -Fo @<<
$<
<<
all: $(TARGET)
$(OFILES): $(HFILES)
$(TARGET): $(OFILES)
$(LINK) $(LFLAGS) /OUT:$(TARGET) @<<
$(OFILES) $(LIBS)
<<
mt -nologo -manifest $(TARGET).manifest -outputresource:$(TARGET);2
install: $(TARGET)
@if not exist \usr\local\lib\python3.5\dist-packages mkdir \usr\local\lib\python3.5\dist-packages
copy /y $(TARGET) \usr\local\lib\python3.5\dist-packages\$(TARGET)
clean:
-del $(TARGET)
-del siphellocmodule.obj
-del siphelloHello.obj
-del $(TARGET).manifest
Собственно, имею спросить: а что значат вот эти места?
{.}.cpp{}.obj::
@<<
<<
@