Sorry, i have forgotten to had this in my mail !

I have writed :

#ifndef _WIN32
#undef min
#undef max
#endif

Because only windows sdk don't compatible with stdc++ ^^
In a dream it's possible to compile on Solaris, GNU/Hurd system, HP-UX
etc...
(It's not possible because any specific asm code used into source).

I don't have any other problems.
Check your case filename and #include.

You can process many modification of sdk source with my script.
_ rename all directory and .cpp  and .h to low case.
_ all #include <foo> are rewrite in lowcase.
_ all .vcproj modified for convert filename to lowcase.
_ hl_sdk.vcproj corrected (the bad ";" converted to ",")
_ Makefile.vcpm modified for use lowcase
_ info_darknessmode_lightsource.cpp corrected
_ add #undef... to stdstring.h

This script can be run with sdk already modified (Perfect Dark Mod have
used it succefully).
And it can detect if action already processed.

Download here :
http://bombela.free.fr/data/LowCaseAndPatchSourceSDK.sh

Good play ;)

@+
Bombela.

PS: Sorry for my bad english.

Jed a écrit :
Thanks,

That worked for me, althoug I had to do it like this:

#ifdef _LINUX
#undef min
#undef max
#endif

or my Windows build wouldn't compile.

Well thats one problem solved. Now I have a big error with
memoverride.cpp but I belive thats already logged in bugzilla.

- Jed


On 30/12/06, Bombela <[EMAIL PROTECTED]> wrote:
This is a multi-part message in MIME format.
--
[ Picked text/plain from multipart/alternative ]
Hello,

The problem is a conflit with valve definition of min/max in
public/minmax.h and the definition in stdc++ (file "limits").

Tank for your tip Garry.

For resolve it's simple.
In file public/stdstring.h of your Source SDK, you can add :

#undef min
#undef max

before : #include <string>

The include <string> use <limits> and others files when use stdc++
min/max definition.

The compilation with gcc 3.4.6 is now possible.

$ gcc-3.4 -dumpversion
3.4.6
$ du -h server_i486.so
du: cannot access `server_i486.so': No such file or directory
$ time make -j5 -f Makefile
[...]
ccache g++-3.4 -w -I../dlls/. -I../dlls/../utils...
[...]
 /usr/local/lib/libstdc++.so.6.0.1
/usr/local/lib/gcc/i486-linux-gnu/3.4.1/libgcc_eh.a
make[1]: Leaving directory `/media/fast/pdark/code/src/linux_sdk'

real    1m23.312s
user    2m45.022s
sys     0m27.522s
$ du -h server_i486.so
14M     server_i486.so

Coool ;)

Bombela
(Pssst' : Sorry for my bad english !)

Garry Newman a écrit :
> --
> [ Picked text/plain from multipart/alternative ]
> I came across this about a year ago too. It was a pretty common
problem -
> not sure why there isn't more info on it (there was back then).
>
> >From what I remember it's something in stdstring.h. It includes
some file
> that re-defines min and max in linux. The fix was to just #undef
min and
> #undef max and then include another file (I think). Wish I could
find where
> I found out how to fix it.
>
> garry
>
> On 12/23/06, Jed <[EMAIL PROTECTED]> wrote:
>
>> Well after solving all the other problems I've managed to get the
>> current HL2MP SDK to start compiling but I've hit an error regarding
>> min/max.
>>
>> I've searched the archives and found mention to it but no definate
>> answer on how to fix it. I've looked at the KI list for Linux on the
>> SDK but it's really confusing as to what issues are from the old SDK,
>> which are just with the new or what remain from both.
>>
>> So, in short - I'm compiling the current 31st Oct 2006 HL2MP codebase
>> with GCC 3.4.6.
>>
>> Everything is set-up and running as far as a build environment is
>> concerned and the compile begins before stopping with this:
>>
>> /usr/bin/g++34 -w -I../dlls/../game_shared/hl2 -I../dlls/.
>> -I../dlls/../public -I../dlls/../public/tier1
-I../dlls/../game_shared
>> -I../dlls/../utils/common -I../dlls/../dlls -I../dlls/../../dlls
>> -I../dlls/../dlls/hl2_dll -I../dlls/../dlls/hl2mp_dll
>> -I../dlls/../game_shared/hl2mp -I../dlls/./episodic -DHL2_EPISODIC
>> -DHL2MP -DHL2_DLL -DUSES_SAVERESTORE -DNDEBUG -DGAME_DLL
>> -Dsprintf=use_Q_snprintf_instead_of_sprintf -DVECTOR
>> -Dstrncpy=use_Q_strncpy_instead -D_snprintf=use_Q_snprintf_instead
>> -DPROTECTED_THINGS_ENABLE  -mtune=i686 -march=pentium3 -mmmx -O3
>> -fpermissive -D_LINUX -DNDEBUG -Dstricmp=strcasecmp
>> -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp
>> -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca
>> -Dstrcmpi=strcasecmp -Usprintf=use_Q_snprintf_instead_of_sprintf
>> -Ustrncpy=use_Q_strncpy_instead -UPROTECTED_THINGS_ENABLE -o
>> obj/server_i486/dlls/npc_talker.o -c ../dlls/npc_talker.cpp
>> In file included from
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory:61,

>>
>>                  from
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string:48,

>>                  from ../dlls/../public/stdstring.h:26,
>>                  from ../dlls/ai_playerally.h:18,
>>                  from ../dlls/npc_talker.h:42,
>>                  from ../dlls/npc_talker.cpp:10:
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:292:22:

>> macro "max" requires 2 arguments, but only 1 given
>> In file included from
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory:61,

>>                  from
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string:48,

>>                  from ../dlls/../public/stdstring.h:26,
>>                  from ../dlls/ai_playerally.h:18,
>>                  from ../dlls/npc_talker.h:42,
>>                  from ../dlls/npc_talker.cpp:10:
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:292:

>>
>> error: expected `;' before "throw"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:295:

>> error: expected `;' before "static"
>> /usr/lib/gcc/i386-redhat-linux
>> /3.4.6/../../../../include/c++/3.4.6/limits:320:23:
>> macro "max" requires 2 arguments, but only 1 given
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:320:

>> error: expected `;' before "throw"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:323:

>> error: expected `;' before "static"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:373:23:

>> macro "max" requires 2 arguments, but only 1 given
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:373:

>> error: expected `;' before "throw"
>> /usr/lib/gcc/i386-redhat-
>> linux/3.4.6/../../../../include/c++/3.4.6/limits:376:
>> error: expected `;' before "static"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:423:30:

>> macro "max" requires 2 arguments, but only 1 given
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:423:

>> error: expected `;' before "throw"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:426:

>> error: expected `;' before "static"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:473:32:

>> macro "max" requires 2 arguments, but only 1 given
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:473:

>>
>> error: expected `;' before "throw"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:476:

>> error: expected `;' before "static"
>> /usr/lib/gcc/i386-redhat-linux
>> /3.4.6/../../../../include/c++/3.4.6/limits:523:26:
>> macro "max" requires 2 arguments, but only 1 given
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:523:

>> error: expected `;' before "throw"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:526:

>> error: expected `;' before "static"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:573:24:

>> macro "max" requires 2 arguments, but only 1 given
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:573:

>> error: expected `;' before "throw"
>> /usr/lib/gcc/i386-redhat-
>> linux/3.4.6/../../../../include/c++/3.4.6/limits:576:
>> error: expected `;' before "static"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:623:33:

>> macro "max" requires 2 arguments, but only 1 given
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:623:

>> error: expected `;' before "throw"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:626:

>> error: expected `;' before "static"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:673:22:

>> macro "max" requires 2 arguments, but only 1 given
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:673:

>>
>> error: expected `;' before "throw"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:676:

>> error: expected `;' before "static"
>> /usr/lib/gcc/i386-redhat-linux
>> /3.4.6/../../../../include/c++/3.4.6/limits:723:31:
>> macro "max" requires 2 arguments, but only 1 given
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:723:

>> error: expected `;' before "throw"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:726:

>> error: expected `;' before "static"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:773:23:

>> macro "max" requires 2 arguments, but only 1 given
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:773:

>> error: expected `;' before "throw"
>> /usr/lib/gcc/i386-redhat-
>> linux/3.4.6/../../../../include/c++/3.4.6/limits:776:
>> error: expected `;' before "static"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:823:32:

>> macro "max" requires 2 arguments, but only 1 given
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:823:

>> error: expected `;' before "throw"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:826:

>> error: expected `;' before "static"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:873:28:

>> macro "max" requires 2 arguments, but only 1 given
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:873:

>>
>> error: expected `;' before "throw"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:876:

>> error: expected `;' before "static"
>> /usr/lib/gcc/i386-redhat-linux
>> /3.4.6/../../../../include/c++/3.4.6/limits:923:37:
>> macro "max" requires 2 arguments, but only 1 given
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:923:

>> error: expected `;' before "throw"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:926:

>> error: expected `;' before "static"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:973:24:

>> macro "max" requires 2 arguments, but only 1 given
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:973:

>> error: expected `;' before "throw"
>> /usr/lib/gcc/i386-redhat-
>> linux/3.4.6/../../../../include/c++/3.4.6/limits:976:
>> error: expected `;' before "static"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:1029:25:

>> macro "max" requires 2 arguments, but only 1 given
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:1029:

>> error: expected `;' before "throw"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:1032:

>> error: expected `;' before "static"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:1085:30:

>> macro "max" requires 2 arguments, but only 1 given
>> /usr/lib/gcc/i386-redhat-
>> linux/3.4.6/../../../../include/c++/3.4.6/limits:1085:
>> error: expected `;' before "throw"
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:1088:

>> error: expected `;' before "static"
>> In file included from
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string:48,

>>                  from ../dlls/../public/stdstring.h:26,
>>                  from ../dlls/ai_playerally.h:18,
>>                  from ../dlls/npc_talker.h:42,
>>                  from ../dlls/npc_talker.cpp:10:
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory:77:62:

>> macro "max" requires 2 arguments, but only 1 given
>> In file included from
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string:48,

>>                  from ../dlls/../public/stdstring.h:26,
>>                  from ../dlls/ai_playerally.h:18,
>>                  from ../dlls/npc_talker.h:42,
>>                  from ../dlls/npc_talker.cpp:10:
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory:

>> In function `std::pair<_Tp*, ptrdiff_t>
>> std::__get_temporary_buffer(ptrdiff_t, _Tp*)':
>>
>>
/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory:77:

>> error: `max' is not a member of `std::numeric_limits<int>'
>> make[1]: *** [obj/server_i486/dlls/npc_talker.o] Error 1
>> make[1]: Leaving directory `/usr/local/src/Source SDK/linux_sdk'
>> make: *** [mod] Error 2
>>
>>
>> I'm sure I can't be the only one with this problem and googling for
>> the error message didn't reveal any insights of how to solve it.
>>
>> Little help?
>>
>> - Jed
>>
>> _______________________________________________
>> To unsubscribe, edit your list preferences, or view the list
archives,
>> please visit:
>> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>>
>>
>>
> --
>
> _______________________________________________
> To unsubscribe, edit your list preferences, or view the list
archives, please visit:
> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>
>
>
>
--

_______________________________________________
To unsubscribe, edit your list preferences, or view the list
archives, please visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders



_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
please visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders




_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

Reply via email to