| 1 | # $Id: setup.os2prfemx.mk,v 1.3 2002-06-19 02:20:01 bird Exp $ | 
|---|
| 2 |  | 
|---|
| 3 | # ---OS2, PROFILE, EMX---------------------------- | 
|---|
| 4 | ENV_NAME="OS/2, Profile, EMX/GCC Compiler" | 
|---|
| 5 | ENV_STATUS=OK | 
|---|
| 6 | !if "$(ENV_ENVS)" == "" | 
|---|
| 7 | ENV_ENVS=vac308 emx emxpgcc | 
|---|
| 8 | !else | 
|---|
| 9 | ENV_ENVS_FORCE=vac308 emx emxpgcc | 
|---|
| 10 | !endif | 
|---|
| 11 | SPACE=_ | 
|---|
| 12 | !undef ENV_16BIT | 
|---|
| 13 |  | 
|---|
| 14 |  | 
|---|
| 15 | # | 
|---|
| 16 | # Make sure ilink finds the libraries. | 
|---|
| 17 | # | 
|---|
| 18 | !if [set LIB=$(PATH_EMX)\lib\mt;$(LIBRARY_PATH);$(LIB)] | 
|---|
| 19 | !endif | 
|---|
| 20 |  | 
|---|
| 21 |  | 
|---|
| 22 | # | 
|---|
| 23 | # Include some shared standard stuff: ALP, VAC optional stuff. | 
|---|
| 24 | # | 
|---|
| 25 | !include $(PATH_MAKE)\setup.os2prfalp.mk | 
|---|
| 26 | !include $(PATH_MAKE)\setup.optional.emx.mk | 
|---|
| 27 |  | 
|---|
| 28 |  | 
|---|
| 29 | # | 
|---|
| 30 | # The tools | 
|---|
| 31 | # | 
|---|
| 32 | AR=ilib.exe | 
|---|
| 33 | CC=gcc.exe | 
|---|
| 34 | CXX=gcc.exe | 
|---|
| 35 | LINK=ilink.exe | 
|---|
| 36 | IMPLIB=implib.exe | 
|---|
| 37 | RC=rc.exe | 
|---|
| 38 | RL=rc.exe | 
|---|
| 39 | EXEPACK=lxlite.exe | 
|---|
| 40 |  | 
|---|
| 41 |  | 
|---|
| 42 | # | 
|---|
| 43 | # The flags | 
|---|
| 44 | # | 
|---|
| 45 | AR_FLAGS=/nologo /noignorecase | 
|---|
| 46 | AR_CMD=$(AR) $(AR_FLAGS) $@ @$(TARGET_LNK) | 
|---|
| 47 | _AR_LNK1= "$(TARGET_OBJS: ="&^ | 
|---|
| 48 | ")" | 
|---|
| 49 | AR_LNK1= $(_AR_LNK1:""=) | 
|---|
| 50 | AR_LNK2= $(@R).lst | 
|---|
| 51 |  | 
|---|
| 52 | CC_FLAGS=-c -DDEBUG -DOS2 -D__32BIT__ -DMODEL=FLAT -Zomf -Wall -Wstrict-prototypes -Wno-trigraphs \ | 
|---|
| 53 | -fno-common -march=i586 -g $(_CC_OPTIONAL) \ | 
|---|
| 54 | $(CC_DEFINES:/D=-D) $(ALL_DEFINES:/D=-D) $(BUILD_DEFINES:/D=-D) $(CC_INCLUDES:^;= -I) $(ALL_INCLUDES:^;= -I) -I$(PATH_INCLUDES:^;= -I) | 
|---|
| 55 | CC_FLAGS_EXE=$(CC_FLAGS:  = ) -Zmt -Zexe | 
|---|
| 56 | CC_FLAGS_DLL=$(CC_FLAGS:  = ) -Zmt -Zdll | 
|---|
| 57 | CC_FLAGS_SYS=$(CC_FLAGS:  = ) -DRING0 -mno-probe -Zdll -Zno-rte | 
|---|
| 58 | CC_FLAGS_VDD=$(CC_FLAGS_SYS:  = ) | 
|---|
| 59 | CC_FLAGS_IFS=$(CC_FLAGS_SYS:  = ) -Zdll | 
|---|
| 60 | CC_OBJ_OUT=-o$(SPACE:_= ) | 
|---|
| 61 | #CC_LST_OUT=-S -o$(SPACE:_= ) | 
|---|
| 62 | CC_PC_2_STDOUT=-C -E | 
|---|
| 63 | CC_AS_2_FILE=-S -o$(SPACE:_= ) | 
|---|
| 64 |  | 
|---|
| 65 |  | 
|---|
| 66 | CXX_FLAGS=-c -DDEBUG -DOS2 -D__32BIT__ -DMODEL=FLAT -Zomf -Wall -Wstrict-prototypes -Wno-trigraphs \ | 
|---|
| 67 | -fno-common -march=i586 -g $(_CXX_OPTIONAL) \ | 
|---|
| 68 | $(CXX_DEFINES:/D=-D) $(ALL_DEFINES:/D=-D) $(BUILD_DEFINES:/D=-D) $(CXX_INCLUDES:^;= -I) $(ALL_INCLUDES:^;= -I) -I$(PATH_INCLUDES:^;= -I) | 
|---|
| 69 | CXX_FLAGS_EXE=$(CXX_FLAGS:  = ) -Zmt -Zexe | 
|---|
| 70 | CXX_FLAGS_DLL=$(CXX_FLAGS:  = ) -Zmt -Zdll | 
|---|
| 71 | CXX_FLAGS_SYS=$(CXX_FLAGS:  = ) -DRING0 -mno-probe -Zno-rte -fno-exceptions | 
|---|
| 72 | CXX_FLAGS_VDD=$(CXX_FLAGS_SYS:  = ) | 
|---|
| 73 | CXX_FLAGS_IFS=$(CXX_FLAGS_SYS:  = ) -Zdll | 
|---|
| 74 | CXX_OBJ_OUT=-o$(SPACE:_= ) | 
|---|
| 75 | #CXX_LST_OUT=-S -o$(SPACE:_= ) | 
|---|
| 76 | CXX_PC_2_STDOUT=-C -E | 
|---|
| 77 | CXX_AS_2_FILE=-S -o$(SPACE:_= ) | 
|---|
| 78 |  | 
|---|
| 79 | !if "$(CC_AS_CXX)" != "" | 
|---|
| 80 | ! if "$(CXX_AS_CC)" != "" | 
|---|
| 81 | !  if [@(ECHO) $(CLRERR)Error: Do you think you're smart? CC_AS_CXX and CXX_AS_CC is mutual execlusive!$(CLRRST)] | 
|---|
| 82 | !  endif | 
|---|
| 83 | !  error | 
|---|
| 84 | ! endif | 
|---|
| 85 | CC=g++ | 
|---|
| 86 | CC_FLAGS_EXE=$(CXX_FLAGS_EXE) | 
|---|
| 87 | CC_FLAGS_DLL=$(CXX_FLAGS_DLL) | 
|---|
| 88 | CC_FLAGS_SYS=$(CXX_FLAGS_SYS) | 
|---|
| 89 | CC_FLAGS_VDD=$(CXX_FLAGS_VDD) | 
|---|
| 90 | CC_FLAGS_IFS=$(CXX_FLAGS_IFS) | 
|---|
| 91 | !endif | 
|---|
| 92 | !if "$(CXX_AS_CC)" != "" | 
|---|
| 93 | ! if [@(ECHO) $(CLRERR)Error: CXX_AS_CC is not supported by this compiler!$(CLRRST)] | 
|---|
| 94 | ! endif | 
|---|
| 95 | ! error | 
|---|
| 96 | !endif | 
|---|
| 97 |  | 
|---|
| 98 | IMPLIB_FLAGS=/NOI /Nologo | 
|---|
| 99 |  | 
|---|
| 100 | LINK_FLAGS=/nofree /nologo /de /map /linenumbers /NOIgnorecase /NOE /NOD /Optfunc /PACKCODE /PACKDATA | 
|---|
| 101 | LINK_FLAGS_EXE=$(LINK_FLAGS) /EXECutable /STACK:$(TARGET_STACKSIZE) | 
|---|
| 102 | LINK_FLAGS_DLL=$(LINK_FLAGS) /DLL | 
|---|
| 103 | LINK_FLAGS_SYS=$(LINK_FLAGS) /PDD /Align:16 | 
|---|
| 104 | LINK_FLAGS_VDD=$(LINK_FLAGS) /VDD /Align:16 | 
|---|
| 105 | LINK_FLAGS_IFS=$(LINK_FLAGS_DLL) | 
|---|
| 106 | LINK_CMD_EXE=$(LINK) $(LINK_FLAGS_EXE) crt0.obj @$(TARGET_LNK) | 
|---|
| 107 | LINK_CMD_DLL=$(LINK) $(LINK_FLAGS_DLL) dll0.obj @$(TARGET_LNK) | 
|---|
| 108 | LINK_CMD_SYS=$(LINK) $(LINK_FLAGS_SYS) crt0.obj @$(TARGET_LNK) | 
|---|
| 109 | LINK_CMD_VDD=$(LINK) $(LINK_FLAGS_VDD) crt0.obj @$(TARGET_LNK) | 
|---|
| 110 | LINK_CMD_IFS=$(LINK) $(LINK_FLAGS_IFS) dll0.obj @$(TARGET_LNK) | 
|---|
| 111 | LINK_LNK1=$(TARGET_OBJS: =+^ | 
|---|
| 112 | ), | 
|---|
| 113 | LINK_LNK2=$(TARGET), | 
|---|
| 114 | LINK_LNK3=$(TARGET_MAP), | 
|---|
| 115 | LINK_LNK4=$(TARGET_LIBS: =+^ | 
|---|
| 116 | ) end.lib, | 
|---|
| 117 | LINK_LNK5=$(TARGET_DEF_LINK) | 
|---|
| 118 |  | 
|---|
| 119 | RC_FLAGS=-r -n $(RC_DEFINES) $(ALL_DEFINES) $(BUILD_DEFINES) $(RC_INCLUDES:-I=-i ) $(ALL_INCLUDES:-I=-i ) -i $(PATH_INCLUDES:;= -i ) | 
|---|
| 120 | RL_FLAGS=-x2 -n | 
|---|
| 121 |  | 
|---|
| 122 | # | 
|---|
| 123 | # Libraries and object files. | 
|---|
| 124 | # | 
|---|
| 125 | LIB_OS      = os2386.lib | 
|---|
| 126 | LIB_C_OBJ   = c_alias.lib gcc.lib g.lib c.lib c_app.lib c.lib gcc.lib emx.lib os2.lib emx2.lib | 
|---|
| 127 | LIB_C_DLL   = c_alias.lib c_static.lib c_import.lib os2.lib emx2.lib | 
|---|
| 128 | LIB_C_RTDLL = c_alias.lib c_static.lib emx2.lib | 
|---|
| 129 | LIB_C_NRE   = c_alias.lib gcc.lib g.lib c.lib c_dllnrt.lib os2.lib | 
|---|
| 130 | LIB_C_DMNGL = | 
|---|
| 131 | OBJ_PROFILE = | 
|---|
| 132 |  | 
|---|
| 133 | # ---OS2, PROFILE, EMX---------------------------- | 
|---|
| 134 |  | 
|---|