cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Need to share some code when posting a question or reply? Make sure to use the "Insert code sample" menu option. Learn more! X

I am post my makefile here

kguru
1-Newbie

I am post my makefile here

# File Name
MAKEFILENAME = MAKEFILE

# Output Name
OUTPUT = program

# Machine Type
PRO_MACHINE_TYPE = x86e_win64
CREO2_DATECODE=D:

# Executable names
EXE = $(OUTPUT).exe
EXE_DLL = $(OUTPUT).dll

# Pro/Toolkit Source & Machine Loadpoint (EXTERNAL USE - DEFAULT)
PROTOOL_SRC = $(CREO2_DATECODE)/protoolkit
PROTOOL_SYS = $(PROTOOL_SRC)/$(PRO_MACHINE_TYPE)

# Pro/Toolkit Source & Machine Loadpoint  (PTC INTERNAL USE)
#PROTOOL_SRC = $(PTCSRC)/protoolkit
#PROTOOL_SYS = $(PTCSYS)

# Application Definitions
PROTK_APPLS = $(PROTOOL_SRC)/protk_appls
PROTK_APPLINCS = $(PROTK_APPLS)/includes
PROTK_INCS = $(PROTOOL_SRC)/includes
PROTK_EXAMP = $(PROTK_APPLS)/pt_examples
PROTK_UTILS = $(PROTK_EXAMP)/pt_utils

# Include File Paths
INCS = -I. \
    -I$(PROTK_APPLINCS) \
    -I$(PROTK_INCS) \

# Compiler Flags
CC = cl
DEBUG = /Od /Z7
MACH = -DPRO_MACHINE=36 -DPRO_OS=4
CCFLAGS = -c -fp:precise -DPRO_USE_VAR_ARGS /EHa $(DEBUG)
CFLAGS = $(CCFLAGS) $(INCS) $(MACH)

# Libraries
PTCLIBS = $(PROTOOL_SYS)/obj/protoolkit.lib $(PROTOOL_SYS)/obj/pt_asynchronous.lib
PTCLIBS_DLL = $(PROTOOL_SYS)/obj/protk_dll.lib
LIBS = libcmt.lib kernel32.lib user32.lib wsock32.lib advapi32.lib mpr.lib winspool.lib netapi32.lib psapi.lib gdi32.lib shell32.lib comdlg32.lib ole32.lib ws2_32.lib

OUTPUT_DIR = x64\Debug

# Object files
OBJS = $(OUTPUT_DIR)\pt_utils.obj
OBJS = $(OBJS) $(OUTPUT_DIR)\$(OUTPUT).obj

# Linker
LINK = link -out:
#Executable applications compiled using WinMain() instead of main() should set the subsystem to windows instead of console.
LINKFLAGS = /subsystem:console /debug /machine:amd64

# EXE target
exe: $(EXE)

$(EXE) :  $(OBJS) $(PTCLIBS)
@echo Start at
@date /T
@time /T
@echo PROTOOL_SRC = $(PROTOOL_SRC)
@echo PROTOOL_SYS = $(PROTOOL_SYS)
$(LINK)$(OUTPUT_DIR)\$(EXE) $(LINKFLAGS) @<<longline.list
$(OBJS) $(PTCLIBS) $(LIBS)
<<

@echo Finished at
@date /T
@time /T
# del $(OBJS)

# Dll target
dll: $(EXE_DLL)

$(EXE_DLL) :  $(OBJS) $(PTCLIBS_DLL)
@echo Start at
@date /T
@time /T
@echo PROTOOL_SRC = $(PROTOOL_SRC)
@echo PROTOOL_SYS = $(PROTOOL_SYS)
$(LINK)$(OUTPUT_DIR)\$(EXE_DLL) $(LINKFLAGS) /dll @<<longline.list
$(OBJS) $(PTCLIBS_DLL) $(LIBS)
<<

@echo Finished at
@date /T
@time /T
# del $(OBJS)

# object dependencies
$(OUTPUT_DIR)\pt_utils.obj: $(PROTK_UTILS)/pt_utils.c
$(CC) $(CFLAGS) /Fo"$(OUTPUT_DIR)\\" $(PROTK_UTILS)/pt_utils.c

$(OUTPUT_DIR)\$(OUTPUT).obj: $(OUTPUT).cpp
$(CC) $(CFLAGS) /Fo"$(OUTPUT_DIR)\\" $(OUTPUT).cpp

rebuild_exe:
if exist $(OUTPUT_DIR) del $(OBJS) $(OUTPUT_DIR)\$(EXE) $(OUTPUT_DIR)\*.lib $(OUTPUT_DIR)\*.exp $(OUTPUT_DIR)\*.ilk $(OUTPUT_DIR)\*.pdb
nmake -f $(MAKEFILENAME) exe

rebuild_dll:
if exist $(OUTPUT_DIR) del $(OBJS) $(OUTPUT_DIR)\$(EXE_DLL) $(OUTPUT_DIR)\*.lib $(OUTPUT_DIR)\*.exp $(OUTPUT_DIR)\*.ilk $(OUTPUT_DIR)\*.pdb
nmake -f $(MAKEFILENAME) dll

#Clean Command Line setting in VS2010 cannot be used in Makefile project, so no such command is set.

1 REPLY 1
PARTHIBAN_K
15-Moonstone
(To:kguru)


CREO2_DATECODE=D: → Not Required

# Pro/Toolkit Source & Machine Loadpoint (EXTERNAL USE - DEFAULT)
PROTOOL_SRC = $(CREO2_DATECODE)/protoolkit

PROTOOL_SRC = $(PROE_INSTALL_PATH)/protoolkit

→ Set as Your System and User Environmental Variable. The Path should be Creo Installation path

# object dependencies
$(OUTPUT_DIR)\pt_utils.obj: $(PROTK_UTILS)/pt_utils.c
$(CC) $(CFLAGS) /Fo"$(OUTPUT_DIR)\\" $(PROTK_UTILS)/pt_utils.c → change this line like below one

            $(CC) $(CFLAGS) /Fo"$(OUTPUT_DIR)\\" $(PROTK_UTILS)/pt_utils.c  → This line should start with tab character

$(OUTPUT_DIR)\$(OUTPUT).obj: $(OUTPUT).cpp
$(CC) $(CFLAGS) /Fo"$(OUTPUT_DIR)\\" $(OUTPUT).cpp → change this line like below one

            $(CC) $(CFLAGS) /Fo"$(OUTPUT_DIR)\\" $(OUTPUT).cpp → This line should start with tab character

#Clean Command Line setting in VS2010 cannot be used in Makefile project, so no such command is set.


# Can add below clean commands

clean :

       del $(OBJS)

       del $(EXE)

       nmake -f $(MAKEFILENAME)

clean_dll :

       del $(OBJS)

       del $(EXE_DLL)

       nmake -f $(MAKEFILENAME) dll


Please check and let me know if you got any errors.


Parthiban Kannan

href="https://www.linkedin.com/in/parthiban-kannan/" target="_blank"
Top Tags