Added some pathes for AROS operating system. We need someone to test it out now :)
Also, there is a realpath implementation there wich may be useful for BeOS too git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@421 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
		
							parent
							
								
									4c48c74a96
								
							
						
					
					
						commit
						e2fe9dcd79
					
				
							
								
								
									
										13
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								Makefile
									
									
									
									
									
								
							@ -62,6 +62,19 @@ else
 | 
			
		||||
    NOTTF = 1
 | 
			
		||||
  else
 | 
			
		||||
 | 
			
		||||
  #AROS specific
 | 
			
		||||
  ifeq ($(PLATFORM),AROS)
 | 
			
		||||
    DELCOMMAND = rm -rf
 | 
			
		||||
    MKDIR = mkdir -p
 | 
			
		||||
    RMDIR = rmdir
 | 
			
		||||
    CP = cp
 | 
			
		||||
    BIN = grafx2
 | 
			
		||||
    CFGBIN = gfxcfg
 | 
			
		||||
    COPT = -Wall _c _g `i386-linux-aros-sdl-config --cflags` $(TTFCOPT)
 | 
			
		||||
    LOPT = -lSDL_image `i386-linux-aros-sdl-config --libs` -lpng -ljpeg -lz $(TTFLOPT)
 | 
			
		||||
    CC = i386-linux-aros-gcc
 | 
			
		||||
    OBJDIR = obj/aros
 | 
			
		||||
 | 
			
		||||
  #BeOS specific
 | 
			
		||||
  ifeq ($(PLATFORM),BeOS)
 | 
			
		||||
    DELCOMMAND = rm -rf
 | 
			
		||||
 | 
			
		||||
@ -23,7 +23,7 @@ $(OBJDIR)/loadsave.o: loadsave.c const.h struct.h global.h loadsave.h graph.h \
 | 
			
		||||
  divers.h pages.h op_c.h boutons.h erreurs.h io.h sdlscreen.h windows.h
 | 
			
		||||
$(OBJDIR)/main.o: main.c const.h struct.h global.h loadsave.h graph.h divers.h \
 | 
			
		||||
  init.h boutons.h moteur.h pages.h files.h sdlscreen.h erreurs.h \
 | 
			
		||||
  readini.h saveini.h io.h texte.h setup.h windows.h brush.h
 | 
			
		||||
  readini.h saveini.h io.h texte.h setup.h windows.h brush.h realpath.h
 | 
			
		||||
$(OBJDIR)/moteur.o: moteur.c const.h struct.h global.h loadsave.h graph.h divers.h \
 | 
			
		||||
  special.h boutons.h operatio.h shade.h erreurs.h sdlscreen.h windows.h brush.h
 | 
			
		||||
$(OBJDIR)/op_c.o: op_c.c op_c.h struct.h const.h erreurs.h graph.h
 | 
			
		||||
@ -43,6 +43,7 @@ $(OBJDIR)/pxwide.o: pxwide.c global.h struct.h const.h loadsave.h sdlscreen.h \
 | 
			
		||||
$(OBJDIR)/readini.o: readini.c const.h global.h struct.h loadsave.h graph.h divers.h
 | 
			
		||||
$(OBJDIR)/readline.o: readline.c const.h struct.h global.h loadsave.h graph.h \
 | 
			
		||||
  divers.h erreurs.h sdlscreen.h readline.h windows.h
 | 
			
		||||
$(OBJDIR)/realpath.o: realpath.c
 | 
			
		||||
$(OBJDIR)/saveini.o: saveini.c const.h global.h struct.h loadsave.h readini.h io.h \
 | 
			
		||||
  erreurs.h graph.h divers.h
 | 
			
		||||
$(OBJDIR)/sdlscreen.o: sdlscreen.c global.h struct.h const.h loadsave.h sdlscreen.h \
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								aide.c
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								aide.c
									
									
									
									
									
								
							@ -417,6 +417,7 @@ void Bouton_Stats(void)
 | 
			
		||||
    }
 | 
			
		||||
#else
 | 
			
		||||
    // Free disk space is only for shows. Other platforms can display 0.
 | 
			
		||||
    Taille=0;
 | 
			
		||||
#endif
 | 
			
		||||
  
 | 
			
		||||
    if(Taille > (100ULL*1024*1024*1024))
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								files.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								files.c
									
									
									
									
									
								
							@ -29,7 +29,7 @@
 | 
			
		||||
#include <sys/stat.h>
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
 | 
			
		||||
#if defined(__amigaos4__)
 | 
			
		||||
#if defined(__amigaos4__) || defined(__AROS__)
 | 
			
		||||
    #include <proto/dos.h>
 | 
			
		||||
    #include <dirent.h>
 | 
			
		||||
    #define isHidden(Enreg) (0)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								init.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								init.c
									
									
									
									
									
								
							@ -69,7 +69,7 @@ void Ajouter_lecteur(char Lettre, byte Type, char *Chemin)
 | 
			
		||||
// Rechercher la liste et le type des lecteurs de la machine
 | 
			
		||||
void Rechercher_drives(void)
 | 
			
		||||
{
 | 
			
		||||
  #if defined(__amigaos4__)
 | 
			
		||||
  #if defined(__amigaos4__) || defined(__AROS__)
 | 
			
		||||
 | 
			
		||||
  // No icons by default.
 | 
			
		||||
  // It's possible to add some here.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								main.c
									
									
									
									
									
								
							@ -58,6 +58,8 @@
 | 
			
		||||
#elif defined(__macosx__)
 | 
			
		||||
    #import <corefoundation/corefoundation.h>
 | 
			
		||||
    #import <sys/param.h>
 | 
			
		||||
#elif defined(__AROS__) || defined(__BEOS__)
 | 
			
		||||
    #include "realpath.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
byte Ancien_nb_lignes;                // Ancien nombre de lignes de l'écran
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										86
									
								
								realpath.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								realpath.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,86 @@
 | 
			
		||||
/*   Found in:
 | 
			
		||||
     http://amiga.sourceforge.net/amigadevhelp/FUNCTIONS/GeekGadgets/realpath/ex02_realpath.c
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <limits.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
#include <fcntl.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
 | 
			
		||||
static char *sep(char *path)
 | 
			
		||||
{
 | 
			
		||||
	char *tmp, c;
 | 
			
		||||
	
 | 
			
		||||
	tmp = strrchr(path, '/');
 | 
			
		||||
	if(tmp) {
 | 
			
		||||
		c = tmp[1];
 | 
			
		||||
		tmp[1] = 0;
 | 
			
		||||
		if (chdir(path)) {
 | 
			
		||||
			return NULL;
 | 
			
		||||
		}
 | 
			
		||||
		tmp[1] = c;
 | 
			
		||||
		
 | 
			
		||||
		return tmp + 1;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	return path;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
char *realpath(const char *_path, char *resolved_path)
 | 
			
		||||
{
 | 
			
		||||
	int fd = open(".", O_RDONLY), l;
 | 
			
		||||
	char path[PATH_MAX], lnk[PATH_MAX], *tmp = (char *)"";
 | 
			
		||||
	char tmp2[PATH_MAX];
 | 
			
		||||
	
 | 
			
		||||
	if (fd < 0) {
 | 
			
		||||
		return NULL;
 | 
			
		||||
	}
 | 
			
		||||
	strncpy(path, _path, PATH_MAX);
 | 
			
		||||
	
 | 
			
		||||
	if (chdir(path)) {
 | 
			
		||||
		if (errno == ENOTDIR) {
 | 
			
		||||
			l = readlink(path, lnk, PATH_MAX);
 | 
			
		||||
			if (!(tmp = sep(path))) {
 | 
			
		||||
				resolved_path = NULL;
 | 
			
		||||
				goto abort;
 | 
			
		||||
			}
 | 
			
		||||
			if (l < 0) {
 | 
			
		||||
				if (errno != EINVAL) {
 | 
			
		||||
					resolved_path = NULL;
 | 
			
		||||
					goto abort;
 | 
			
		||||
				}
 | 
			
		||||
			} else {
 | 
			
		||||
				lnk[l] = 0;
 | 
			
		||||
				if (!(tmp = sep(lnk))) {
 | 
			
		||||
					resolved_path = NULL;
 | 
			
		||||
					goto abort;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			resolved_path = NULL;
 | 
			
		||||
			goto abort;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	if(resolved_path==NULL) // if we called realpath with null as a 2nd arg
 | 
			
		||||
		resolved_path = (char*) malloc( PATH_MAX );
 | 
			
		||||
		
 | 
			
		||||
	if (!getcwd(resolved_path, PATH_MAX)) {
 | 
			
		||||
		resolved_path = NULL;
 | 
			
		||||
		goto abort;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	if(strcmp(resolved_path, "/") && *tmp) {
 | 
			
		||||
		strcat(resolved_path, "/");
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	strcat(resolved_path, tmp);
 | 
			
		||||
      abort:
 | 
			
		||||
	fchdir(fd);
 | 
			
		||||
	close(fd);
 | 
			
		||||
	return resolved_path;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								realpath.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								realpath.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
			
		||||
#ifndef _REALPATH_H
 | 
			
		||||
#define _REALPATH_H
 | 
			
		||||
 | 
			
		||||
char *realpath(const char *_path, char *resolved_path);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										6
									
								
								setup.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								setup.c
									
									
									
									
									
								
							@ -49,7 +49,7 @@ int Create_ConfigDirectory(char * Config_Dir)
 | 
			
		||||
  #endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#if defined(__macosx__) || defined(__amigaos4__)
 | 
			
		||||
#if defined(__macosx__) || defined(__amigaos4__) || defined(__AROS__)
 | 
			
		||||
  #define ARG_UNUSED __attribute__((unused))
 | 
			
		||||
#else
 | 
			
		||||
  #define ARG_UNUSED
 | 
			
		||||
@ -70,7 +70,7 @@ void Set_Program_Directory(ARG_UNUSED const char * argv0,char * Program_Dir)
 | 
			
		||||
    strcat(Program_Dir    ,"/");
 | 
			
		||||
  
 | 
			
		||||
  // AmigaOS4: hard-coded volume name.
 | 
			
		||||
  #elif defined(__amigaos4__)
 | 
			
		||||
  #elif defined(__amigaos4__) || defined(__AROS__)
 | 
			
		||||
    strcpy(Program_Dir,"PROGDIR:");
 | 
			
		||||
 | 
			
		||||
  // Others: The part of argv[0] before the executable name.    
 | 
			
		||||
@ -113,7 +113,7 @@ void Set_Config_Directory(const char * Program_Dir, char * Config_Dir)
 | 
			
		||||
    strcpy(Config_Dir,Program_Dir);
 | 
			
		||||
    strcat(Config_Dir,"Contents/Resources/");
 | 
			
		||||
  // AmigaOS4
 | 
			
		||||
  #elif defined(__amigaos4__)
 | 
			
		||||
  #elif defined(__amigaos4__) || defined(__AROS__)
 | 
			
		||||
    strcpy(Config_Dir,"PROGDIR:");
 | 
			
		||||
  #else
 | 
			
		||||
    char FileName[TAILLE_CHEMIN_FICHIER];
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user