1#******************************************************************************
2# Copyright (c) 2000, 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#     Kevin Cornell (Rational Software Corporation)
14#*******************************************************************************
15
16# Makefile for creating the eclipse launcher program.
17
18# This makefile expects the following environment variables set:
19#
20# PROGRAM_OUTPUT  - the filename of the output executable
21# PROGRAM_LIBRARY - the filename of the output dll library
22# DEFAULT_OS      - the default value of the "-os" switch
23# DEFAULT_OS_ARCH - the default value of the "-arch" switch
24# DEFAULT_WS      - the default value of the "-ws" switch
25# JAVA_HOME       - the location of the Java for JNI includes
26NODEBUG=1
27!include <ntwin32.mak>
28!include <..\make_version.mak>
29
30PROGRAM_LIBRARY = eclipse_$(LIB_VERSION).dll
31
32# Define the object modules to be compiled and flags.
33MAIN_OBJS = eclipseMain.obj
34COMMON_OBJS = eclipseConfig.obj eclipseCommon.obj   eclipseWinCommon.obj
35DLL_OBJS	= eclipse.obj  eclipseWin.obj  eclipseUtil.obj  eclipseJNI.obj eclipseShm.obj
36
37# using dynamic lib
38#LIBS   = kernel32.lib user32.lib comctl32.lib msvcrt.lib
39#DLL_LIBS = kernel32.lib user32.lib comctl32.lib gdi32.lib Advapi32.lib msvcrt.lib version.lib
40
41LIBS   = kernel32.lib user32.lib comctl32.lib libcmt.lib bufferoverflowU.lib
42DLL_LIBS = kernel32.lib user32.lib comctl32.lib gdi32.lib Advapi32.lib libcmt.lib version.lib bufferoverflowU.lib
43# LIBS   = kernel32.lib user32.lib gdi32.lib comctl32.lib bufferoverflowu.lib
44# LFLAGS = /INCREMENTAL:NO /NOLOGO -subsystem:windows -entry:wmainCRTStartup -machine:IA64
45
46# was: windows
47LFLAGS       = /NODEFAULTLIB /INCREMENTAL:NO /RELEASE /NOLOGO -subsystem:windows -entry:wmainCRTStartup -machine:IA64
48CONSOLEFLAGS = /NODEFAULTLIB /INCREMENTAL:NO /RELEASE /NOLOGO -subsystem:console -entry:wmainCRTStartup -machine:IA64
49DLL_LFLAGS   = /NODEFAULTLIB /INCREMENTAL:NO /RELEASE /NOLOGO /PDB:NONE -entry:_DllMainCRTStartup -dll /BASE:0x72000000 /DLL -machine:IA64
50RES    = eclipse.res
51EXEC   = eclipse.exe
52CONSOLE = eclipsec.exe
53DLL    = $(PROGRAM_LIBRARY)
54DEBUG  = #$(cdebug)
55wcflags = -DUNICODE -I.. -DDEFAULT_OS="\"$(DEFAULT_OS)\"" \
56	-DDEFAULT_OS_ARCH="\"$(DEFAULT_OS_ARCH)\"" \
57	-DDEFAULT_WS="\"$(DEFAULT_WS)\"" \
58	-I$(JAVA_HOME)\include -I$(JAVA_HOME)\include\win32 \
59	$(cflags) -D_CRT_SECURE_NO_WARNINGS -D_CRT_NON_CONFORMING_SWPRINTFS
60all: $(EXEC) $(DLL) $(CONSOLE)
61
62eclipseMain.obj: ../eclipseUnicode.h ../eclipseCommon.h ../eclipseMain.c
63	$(cc) $(DEBUG) $(wcflags) $(cvars) /Fo$*.obj ../eclipseMain.c
64
65eclipseCommon.obj: ../eclipseCommon.h ../eclipseUnicode.h ../eclipseCommon.c
66	$(cc) $(DEBUG) $(wcflags) $(cvars) /Fo$*.obj ../eclipseCommon.c
67
68eclipse.obj: ../eclipseOS.h ../eclipseUnicode.h ../eclipse.c
69    $(cc) $(DEBUG) $(wcflags) $(cvars) /Fo$*.obj ../eclipse.c
70
71eclipseUtil.obj: ../eclipseUtil.h ../eclipseUnicode.h ../eclipseUtil.c
72    $(cc) $(DEBUG) $(wcflags) $(cvars) /Fo$*.obj ../eclipseUtil.c
73
74eclipseConfig.obj: ../eclipseConfig.h ../eclipseUnicode.h ../eclipseConfig.c
75    $(cc) $(DEBUG) $(wcflags) $(cvars) /Fo$*.obj ../eclipseConfig.c
76
77eclipseWin.obj: ../eclipseOS.h ../eclipseUnicode.h eclipseWin.c
78    $(cc) $(DEBUG) $(wcflags) $(cvars) /Fo$*.obj eclipseWin.c
79
80eclipseWinCommon.obj: ../eclipseCommon.h eclipseWinCommon.c
81    $(cc) $(DEBUG) $(wcflags) $(cvars) /Fo$*.obj eclipseWinCommon.c
82
83eclipseJNI.obj: ../eclipseCommon.h ../eclipseOS.h ../eclipseJNI.c
84	$(CC) $(DEBUG) $(wcflags) $(cvars) /Fo$*.obj ../eclipseJNI.c
85
86eclipseShm.obj: ../eclipseShm.h ../eclipseUnicode.h ../eclipseShm.c
87	$(CC) $(DEBUG) $(wcflags) $(cvars) /Fo$*.obj ../eclipseShm.c
88
89$(EXEC): $(MAIN_OBJS) $(COMMON_OBJS) $(RES)
90    $(link) $(LFLAGS) -out:$(PROGRAM_OUTPUT) $(MAIN_OBJS) $(COMMON_OBJS) $(RES) $(LIBS)
91#$(EXEC): $(MAIN_OBJS) $(COMMON_OBJS) $(RES)
92#    $(link) $(LFLAGS) -out:$(PROGRAM_OUTPUT) $(MAIN_OBJS) $(COMMON_OBJS) $(RES) $(LIBS)
93
94#the console version needs a flag set, should look for a better way to do this
95$(CONSOLE): $(MAIN_OBJS) $(COMMON_OBJS)
96	del -f eclipseConfig.obj aeclipseConfig.obj
97	$(cc) $(DEBUG) $(wcflags) $(cvars) -D_WIN32_CONSOLE /FoeclipseConfig.obj ../eclipseConfig.c
98    $(link) $(CONSOLEFLAGS) -out:$(CONSOLE) $(MAIN_OBJS) $(COMMON_OBJS) $(LIBS)
99
100$(DLL): $(DLL_OBJS) $(COMMON_OBJS)
101    $(link) $(DLL_LFLAGS) -out:$(PROGRAM_LIBRARY) $(DLL_OBJS) $(COMMON_OBJS) $(DLL_LIBS)
102
103$(RES): eclipse.rc
104    $(rc) -v -r -fo $(RES) eclipse.rc
105
106install: all
107	copy $(EXEC) $(OUTPUT_DIR)
108	del -f $(EXEC) $(MAIN_OBJS) $(DLL_OBJS) $(COMMON_OBJS) $(RES)
109
110clean:
111	del $(EXEC) $(DLL) $(MAIN_OBJS) $(DLL_OBJS) $(COMMON_OBJS) $(RES)
112