1#****************************************************************************** 2# Copyright (c) 2007, 2009 IBM Corporation and others. 3# 4# This program and the accompanying materials 5# are made available under the terms of the Eclipse Public License 2.0 6# which accompanies this distribution, and is available at 7# https://www.eclipse.org/legal/epl-2.0/ 8# 9# SPDX-License-Identifier: EPL-2.0 10# 11# Contributors: 12# IBM Corporation - initial API and implementation 13#******************************************************************************* 14 15# Makefile for creating the eclipse launcher program. 16 17# This makefile expects the following environment variables set: 18# 19# PROGRAM_OUTPUT - the filename of the output executable 20# PROGRAM_LIBRARY - the filename of the output dll library 21# DEFAULT_OS - the default value of the "-os" switch 22# DEFAULT_OS_ARCH - the default value of the "-arch" switch 23# DEFAULT_WS - the default value of the "-ws" switch 24# JAVA_HOME - the location of the Java for JNI includes 25NODEBUG=1 26 27APPVER=4.0 28_WIN32_WINNT=0x0400 29_WIN32_IE=0x0300 30 31!include <ntwin32.mak> 32!include <..\make_version.mak> 33 34PROGRAM_OUTPUT=eclipse.exe 35# Separate filename from extention 36PROGRAM_NAME=$(PROGRAM_OUTPUT:.exe=) 37 38PROGRAM_LIBRARY = eclipse_$(LIB_VERSION).dll 39 40# Define the object modules to be compiled and flags. 41MAIN_OBJS = eclipseMain.obj 42COMMON_OBJS = eclipseConfig.obj eclipseCommon.obj eclipseWinCommon.obj 43DLL_OBJS = eclipse.obj eclipseWin.obj eclipseUtil.obj eclipseJNI.obj eclipseShm.obj 44 45LIBS = kernel32.lib user32.lib comctl32.lib libcmt.lib 46DLL_LIBS = kernel32.lib user32.lib comctl32.lib gdi32.lib Advapi32.lib libcmt.lib version.lib 47LFLAGS = /DYNAMICBASE /NXCOMPAT /HIGHENTROPYVA /NODEFAULTLIB /INCREMENTAL:NO /RELEASE /NOLOGO -subsystem:windows -entry:wmainCRTStartup 48CONSOLEFLAGS = /DYNAMICBASE /NXCOMPAT /HIGHENTROPYVA /NODEFAULTLIB /INCREMENTAL:NO /RELEASE /NOLOGO -subsystem:console -entry:wmainCRTStartup 49#DLL_LFLAGS = /NODEFAULTLIB /INCREMENTAL:NO /PDB:NONE /RELEASE /NOLOGO -entry:_DllMainCRTStartup@12 -dll /BASE:0x72000000 /DLL 50DLL_LFLAGS = /DYNAMICBASE /NXCOMPAT /HIGHENTROPYVA /NODEFAULTLIB /INCREMENTAL:NO /PDB:NONE /RELEASE /NOLOGO -dll /BASE:0x140000000 /DLL 51RES = $(PROGRAM_NAME).res 52EXEC = $(PROGRAM_OUTPUT) 53CONSOLE = $(PROGRAM_NAME)c.exe 54DLL = $(PROGRAM_LIBRARY) 55DEBUG = #$(cdebug) 56wcflags = -DUNICODE -I.. -DDEFAULT_OS="\"$(DEFAULT_OS)\"" \ 57 -DDEFAULT_OS_ARCH="\"$(DEFAULT_OS_ARCH)\"" \ 58 -DDEFAULT_WS="\"$(DEFAULT_WS)\"" \ 59 -I$(JAVA_HOME)\include -I$(JAVA_HOME)\include\win32 \ 60 $(cflags) 61all: $(EXEC) $(DLL) $(CONSOLE) 62 63eclipseMain.obj: ../eclipseUnicode.h ../eclipseCommon.h ../eclipseMain.c 64 $(cc) $(DEBUG) $(wcflags) $(cvarsmt) /Fo$*.obj ../eclipseMain.c 65 66eclipseCommon.obj: ../eclipseCommon.h ../eclipseUnicode.h ../eclipseCommon.c 67 $(cc) $(DEBUG) $(wcflags) $(cvarsmt) /Fo$*.obj ../eclipseCommon.c 68 69eclipse.obj: ../eclipseOS.h ../eclipseUnicode.h ../eclipse.c 70 $(cc) $(DEBUG) $(wcflags) $(cvarsmt) /Fo$*.obj ../eclipse.c 71 72eclipseUtil.obj: ../eclipseUtil.h ../eclipseUnicode.h ../eclipseUtil.c 73 $(cc) $(DEBUG) $(wcflags) $(cvarsmt) /Fo$*.obj ../eclipseUtil.c 74 75eclipseConfig.obj: ../eclipseConfig.h ../eclipseUnicode.h ../eclipseConfig.c 76 $(cc) $(DEBUG) $(wcflags) $(cvarsmt) /Fo$*.obj ../eclipseConfig.c 77 78eclipseWin.obj: ../eclipseOS.h ../eclipseUnicode.h eclipseWin.c 79 $(cc) $(DEBUG) $(wcflags) $(cvarsmt) /Fo$*.obj eclipseWin.c 80 81eclipseWinCommon.obj: ../eclipseCommon.h eclipseWinCommon.c 82 $(cc) $(DEBUG) $(wcflags) $(cvarsmt) /Fo$*.obj eclipseWinCommon.c 83 84eclipseJNI.obj: ../eclipseCommon.h ../eclipseOS.h ../eclipseJNI.c 85 $(CC) $(DEBUG) $(wcflags) $(cvarsmt) /Fo$*.obj ../eclipseJNI.c 86 87eclipseShm.obj: ../eclipseShm.h ../eclipseUnicode.h ../eclipseShm.c 88 $(CC) $(DEBUG) $(wcflags) $(cvarsmt) /Fo$*.obj ../eclipseShm.c 89 90$(EXEC): $(MAIN_OBJS) $(COMMON_OBJS) $(RES) 91 $(link) $(LFLAGS) -out:$(PROGRAM_OUTPUT) $(MAIN_OBJS) $(COMMON_OBJS) $(RES) $(LIBS) 92 93#the console version needs a flag set, should look for a better way to do this 94$(CONSOLE): $(MAIN_OBJS) $(COMMON_OBJS) 95 del -f eclipseConfig.obj aeclipseConfig.obj 96 $(cc) $(DEBUG) $(wcflags) $(cvarsmt) -D_WIN32_CONSOLE /FoeclipseConfig.obj ../eclipseConfig.c 97 $(link) $(CONSOLEFLAGS) -out:$(CONSOLE) $(MAIN_OBJS) $(COMMON_OBJS) $(LIBS) 98 99$(DLL): $(DLL_OBJS) $(COMMON_OBJS) 100 $(link) $(DLL_LFLAGS) -out:$(PROGRAM_LIBRARY) $(DLL_OBJS) $(COMMON_OBJS) $(DLL_LIBS) 101 102$(RES): $(PROGRAM_NAME).rc 103 $(rc) -r -fo $(RES) eclipse.rc 104 105install: all 106 copy $(EXEC) $(OUTPUT_DIR) 107 del -f $(EXEC) $(MAIN_OBJS) $(DLL_OBJS) $(COMMON_OBJS) $(RES) 108 109clean: 110 del $(EXEC) $(DLL) $(MAIN_OBJS) $(DLL_OBJS) $(COMMON_OBJS) $(RES) 111