aboutsummaryrefslogblamecommitdiffstats
path: root/Makefile
blob: c85db9d7a6a3eea8077e70161ed32e22180bb15b (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13

       

                      
 







                   
             



                                       
         
                        

                                   
                                   
                                    

                                    


                                    
                          
                          
                           

                                
                         


                            
                             


                              
                            
                        
                             
                         
                                   
                                    
                           

                             
                           
                            
                           
                         
                          
                        
                           
                         
                            
                             

                           



                            


                  

                    
 
      



                     
              
                  


                          
                         





                                
                         
                          
                         

                          

                   

                   
                      
                  
                
                      































































































































































































































































































                                     

                      
               



                           
                   



                           
                          


                                
                          
                           
                          

                           

                   
                     
                  
                       

                     







                      

                    
                    

                           
                           
                            
                           

                                 
                             

                            


                            
                   
                    
                      
                   
                        

                      
                   






                       
                     
                   

                            
                            

                             
                    



                      


                          
                    
                         
                     

                    
                            
                             
                              

                    

                     

                     
                      

                        
                      
                             
                              
                     

                       
                      
                     
                      


                    




                            
                   



                     


                         


                        

                   




                             

                    




                       


                             
                    


                      
                    
                     


                   








                   
                    
                        


                              
                 

                    
                      
                 













                   

                       





                   
                    






                     
                   
                     
                         

                      
                    
                       
                     
                      
                          
                        

                     
                 
                  
                      

                      
                      
                          
                  
                
                   
                    
                 


                   
                      

                      
                      
                          
                        
                      
                  
                      
                   
                       
                     
                         
                    
                  
                  
                      
                     
                    

                     
                                 

                      
                    


                           
                  



                    































































































































































































































































































                                      
                      
                       


                          
                        
                            
                     
                    
                        
                      

                         

                         
                         
                             
                     


                          


                        




                        
                
                  

                   

                      
                 

                     
                     
                         
                        
                            
                        
                      
                    
                       

                        
                     
                  
                     
                    

                        

                    
                  
                
                   


                    
                      
                          
                         
                             
                         
                       
                     
                        
                        
                         
                      
                   
                  
                      
                     

                         
                     
                  
                   
                 
                    




                      
                     
                  

                      
                      
                          
                        
                      
                      

                     
                       
                           
                         
                       
                   
                       
                     
                   
                  
                 
                    






                   
                     

                        






                   
                     

                  


                           
                           
                        

                           
                       





















                  
                 

                  



                             

                   
                    
                   

                    







                    


                      
                    
                           
                   


                     
                   
                    
                    

                   
                  
                   
                
                  

                 

                

                   








                               
                                          
 


                                             



                                 
 
                            
                                                                             

                   

                          
                   
 


                                                  
         
                                                    
 
      






                                                          

               
                                                                                           
 
                                        
                                             
                                                           

                                                 
                                                   



                                                                                             

                                                           
                                                               

                                                      




                                                               
                                                          

                                                                
 
      
                                                                                       
 
          
                              
 
                                         
.POSIX:

CONFIGFILE = config.mk
include $(CONFIGFILE)

OS = linux
# Linux:   linux
# Mac OS:  macos
# Windows: windows
include mk/$(OS).mk


LIB_MAJOR = 1
LIB_MINOR = 8
LIB_VERSION = $(LIB_MAJOR).$(LIB_MINOR)
LIB_NAME = simple


SUBHDR =\
	libsimple/abs.h\
	libsimple/aligned_alloc.h\
	libsimple/aligned_allocz.h\
	libsimple/aligned_memdup.h\
	libsimple/aligned_realloc.h\
	libsimple/aligned_strdup.h\
	libsimple/aligned_strndup.h\
	libsimple/aligned_wcsdup.h\
	libsimple/aligned_wcsndup.h\
	libsimple/aligned_wmemdup.h\
	libsimple/array.h\
	libsimple/ascii.h\
	libsimple/calloc.h\
	libsimple/definitions.h\
	libsimple/env.h\
	libsimple/exec.h\
	libsimple/malloc.h\
	libsimple/mallocz.h\
	libsimple/mem.h\
	libsimple/memalign.h\
	libsimple/memalignz.h\
	libsimple/memalloc.h\
	libsimple/memdup.h\
	libsimple/memelem.h\
	libsimple/net.h\
	libsimple/overflow.h\
	libsimple/path.h\
	libsimple/posix_memalign.h\
	libsimple/posix_memalignz.h\
	libsimple/printf.h\
	libsimple/pvalloc.h\
	libsimple/pvallocz.h\
	libsimple/random.h\
	libsimple/realloc.h\
	libsimple/search.h\
	libsimple/sort.h\
	libsimple/stack.h\
	libsimple/str.h\
	libsimple/strdup.h\
	libsimple/strn.h\
	libsimple/strndup.h\
	libsimple/strtoint.h\
	libsimple/time.h\
	libsimple/valloc.h\
	libsimple/vallocz.h\
	libsimple/wcsdup.h\
	libsimple/wcsndup.h\
	libsimple/wmemdup.h

HDR =\
	$(SUBHDR)\
	libsimple.h\
	common.h

OBJ =\
	_enprintf.o\
	_eprintf.o\
	_venprintf.o\
	_veprintf.o\
	abs.o\
	abspath.o\
	aligned_allocn.o\
	aligned_allocz.o\
	aligned_alloczn.o\
	aligned_memdup.o\
	aligned_realloc.o\
	aligned_reallocarray.o\
	aligned_reallocarrayf.o\
	aligned_reallocf.o\
	aligned_reallocfn.o\
	aligned_reallocn.o\
	aligned_strdup.o\
	aligned_strndup.o\
	aligned_wcsdup.o\
	aligned_wcsndup.o\
	aligned_wmemdup.o\
	allocn.o\
	asprintf.o\
	bindex.o\
	bindex_r.o\
	bindtemp_un.o\
	callocn.o\
	close.o\
	close_range.o\
	cmp_doublep.o\
	cmp_doublepp.o\
	cmp_doublepp_nul.o\
	cmp_floatp.o\
	cmp_floatpp.o\
	cmp_floatpp_nul.o\
	cmp_int16p.o\
	cmp_int16pp.o\
	cmp_int16pp_nul.o\
	cmp_int32p.o\
	cmp_int32pp.o\
	cmp_int32pp_nul.o\
	cmp_int64p.o\
	cmp_int64pp.o\
	cmp_int64pp_nul.o\
	cmp_int8p.o\
	cmp_int8pp.o\
	cmp_int8pp_nul.o\
	cmp_int_least16p.o\
	cmp_int_least16pp.o\
	cmp_int_least16pp_nul.o\
	cmp_int_least32p.o\
	cmp_int_least32pp.o\
	cmp_int_least32pp_nul.o\
	cmp_int_least64p.o\
	cmp_int_least64pp.o\
	cmp_int_least64pp_nul.o\
	cmp_int_least8p.o\
	cmp_int_least8pp.o\
	cmp_int_least8pp_nul.o\
	cmp_intmaxp.o\
	cmp_intmaxpp.o\
	cmp_intmaxpp_nul.o\
	cmp_intp.o\
	cmp_intpp.o\
	cmp_intpp_nul.o\
	cmp_intptrp.o\
	cmp_intptrpp.o\
	cmp_intptrpp_nul.o\
	cmp_llongp.o\
	cmp_llongpp.o\
	cmp_llongpp_nul.o\
	cmp_longp.o\
	cmp_longpp.o\
	cmp_longpp_nul.o\
	cmp_nul_doublepp.o\
	cmp_nul_floatpp.o\
	cmp_nul_int16pp.o\
	cmp_nul_int32pp.o\
	cmp_nul_int64pp.o\
	cmp_nul_int8pp.o\
	cmp_nul_int_least16pp.o\
	cmp_nul_int_least32pp.o\
	cmp_nul_int_least64pp.o\
	cmp_nul_int_least8pp.o\
	cmp_nul_intmaxpp.o\
	cmp_nul_intpp.o\
	cmp_nul_intptrpp.o\
	cmp_nul_llongpp.o\
	cmp_nul_longpp.o\
	cmp_nul_ptrdiffpp.o\
	cmp_nul_rev_doublepp.o\
	cmp_nul_rev_floatpp.o\
	cmp_nul_rev_int16pp.o\
	cmp_nul_rev_int32pp.o\
	cmp_nul_rev_int64pp.o\
	cmp_nul_rev_int8pp.o\
	cmp_nul_rev_int_least16pp.o\
	cmp_nul_rev_int_least32pp.o\
	cmp_nul_rev_int_least64pp.o\
	cmp_nul_rev_int_least8pp.o\
	cmp_nul_rev_intmaxpp.o\
	cmp_nul_rev_intpp.o\
	cmp_nul_rev_intptrpp.o\
	cmp_nul_rev_llongpp.o\
	cmp_nul_rev_longpp.o\
	cmp_nul_rev_ptrdiffpp.o\
	cmp_nul_rev_scharpp.o\
	cmp_nul_rev_shortpp.o\
	cmp_nul_rev_sizepp.o\
	cmp_nul_rev_ssizepp.o\
	cmp_nul_rev_strpp.o\
	cmp_nul_rev_ucharpp.o\
	cmp_nul_rev_uint16pp.o\
	cmp_nul_rev_uint32pp.o\
	cmp_nul_rev_uint64pp.o\
	cmp_nul_rev_uint8pp.o\
	cmp_nul_rev_uint_least16pp.o\
	cmp_nul_rev_uint_least32pp.o\
	cmp_nul_rev_uint_least64pp.o\
	cmp_nul_rev_uint_least8pp.o\
	cmp_nul_rev_uintmaxpp.o\
	cmp_nul_rev_uintpp.o\
	cmp_nul_rev_uintptrpp.o\
	cmp_nul_rev_ullongpp.o\
	cmp_nul_rev_ulongpp.o\
	cmp_nul_rev_ushortpp.o\
	cmp_nul_scharpp.o\
	cmp_nul_shortpp.o\
	cmp_nul_sizepp.o\
	cmp_nul_ssizepp.o\
	cmp_nul_strpp.o\
	cmp_nul_ucharpp.o\
	cmp_nul_uint16pp.o\
	cmp_nul_uint32pp.o\
	cmp_nul_uint64pp.o\
	cmp_nul_uint8pp.o\
	cmp_nul_uint_least16pp.o\
	cmp_nul_uint_least32pp.o\
	cmp_nul_uint_least64pp.o\
	cmp_nul_uint_least8pp.o\
	cmp_nul_uintmaxpp.o\
	cmp_nul_uintpp.o\
	cmp_nul_uintptrpp.o\
	cmp_nul_ullongpp.o\
	cmp_nul_ulongpp.o\
	cmp_nul_ushortpp.o\
	cmp_ptrdiffp.o\
	cmp_ptrdiffpp.o\
	cmp_ptrdiffpp_nul.o\
	cmp_rev_doublep.o\
	cmp_rev_doublepp.o\
	cmp_rev_doublepp_nul.o\
	cmp_rev_floatp.o\
	cmp_rev_floatpp.o\
	cmp_rev_floatpp_nul.o\
	cmp_rev_int16p.o\
	cmp_rev_int16pp.o\
	cmp_rev_int16pp_nul.o\
	cmp_rev_int32p.o\
	cmp_rev_int32pp.o\
	cmp_rev_int32pp_nul.o\
	cmp_rev_int64p.o\
	cmp_rev_int64pp.o\
	cmp_rev_int64pp_nul.o\
	cmp_rev_int8p.o\
	cmp_rev_int8pp.o\
	cmp_rev_int8pp_nul.o\
	cmp_rev_int_least16p.o\
	cmp_rev_int_least16pp.o\
	cmp_rev_int_least16pp_nul.o\
	cmp_rev_int_least32p.o\
	cmp_rev_int_least32pp.o\
	cmp_rev_int_least32pp_nul.o\
	cmp_rev_int_least64p.o\
	cmp_rev_int_least64pp.o\
	cmp_rev_int_least64pp_nul.o\
	cmp_rev_int_least8p.o\
	cmp_rev_int_least8pp.o\
	cmp_rev_int_least8pp_nul.o\
	cmp_rev_intmaxp.o\
	cmp_rev_intmaxpp.o\
	cmp_rev_intmaxpp_nul.o\
	cmp_rev_intp.o\
	cmp_rev_intpp.o\
	cmp_rev_intpp_nul.o\
	cmp_rev_intptrp.o\
	cmp_rev_intptrpp.o\
	cmp_rev_intptrpp_nul.o\
	cmp_rev_llongp.o\
	cmp_rev_llongpp.o\
	cmp_rev_llongpp_nul.o\
	cmp_rev_longp.o\
	cmp_rev_longpp.o\
	cmp_rev_longpp_nul.o\
	cmp_rev_ptrdiffp.o\
	cmp_rev_ptrdiffpp.o\
	cmp_rev_ptrdiffpp_nul.o\
	cmp_rev_scharp.o\
	cmp_rev_scharpp.o\
	cmp_rev_scharpp_nul.o\
	cmp_rev_shortp.o\
	cmp_rev_shortpp.o\
	cmp_rev_shortpp_nul.o\
	cmp_rev_sizep.o\
	cmp_rev_sizepp.o\
	cmp_rev_sizepp_nul.o\
	cmp_rev_ssizep.o\
	cmp_rev_ssizepp.o\
	cmp_rev_ssizepp_nul.o\
	cmp_rev_strp.o\
	cmp_rev_strpp.o\
	cmp_rev_strpp_nul.o\
	cmp_rev_ucharp.o\
	cmp_rev_ucharpp.o\
	cmp_rev_ucharpp_nul.o\
	cmp_rev_uint16p.o\
	cmp_rev_uint16pp.o\
	cmp_rev_uint16pp_nul.o\
	cmp_rev_uint32p.o\
	cmp_rev_uint32pp.o\
	cmp_rev_uint32pp_nul.o\
	cmp_rev_uint64p.o\
	cmp_rev_uint64pp.o\
	cmp_rev_uint64pp_nul.o\
	cmp_rev_uint8p.o\
	cmp_rev_uint8pp.o\
	cmp_rev_uint8pp_nul.o\
	cmp_rev_uint_least16p.o\
	cmp_rev_uint_least16pp.o\
	cmp_rev_uint_least16pp_nul.o\
	cmp_rev_uint_least32p.o\
	cmp_rev_uint_least32pp.o\
	cmp_rev_uint_least32pp_nul.o\
	cmp_rev_uint_least64p.o\
	cmp_rev_uint_least64pp.o\
	cmp_rev_uint_least64pp_nul.o\
	cmp_rev_uint_least8p.o\
	cmp_rev_uint_least8pp.o\
	cmp_rev_uint_least8pp_nul.o\
	cmp_rev_uintmaxp.o\
	cmp_rev_uintmaxpp.o\
	cmp_rev_uintmaxpp_nul.o\
	cmp_rev_uintp.o\
	cmp_rev_uintpp.o\
	cmp_rev_uintpp_nul.o\
	cmp_rev_uintptrp.o\
	cmp_rev_uintptrpp.o\
	cmp_rev_uintptrpp_nul.o\
	cmp_rev_ullongp.o\
	cmp_rev_ullongpp.o\
	cmp_rev_ullongpp_nul.o\
	cmp_rev_ulongp.o\
	cmp_rev_ulongpp.o\
	cmp_rev_ulongpp_nul.o\
	cmp_rev_ushortp.o\
	cmp_rev_ushortpp.o\
	cmp_rev_ushortpp_nul.o\
	cmp_scharp.o\
	cmp_scharpp.o\
	cmp_scharpp_nul.o\
	cmp_shortp.o\
	cmp_shortpp.o\
	cmp_shortpp_nul.o\
	cmp_sizep.o\
	cmp_sizepp.o\
	cmp_sizepp_nul.o\
	cmp_ssizep.o\
	cmp_ssizepp.o\
	cmp_ssizepp_nul.o\
	cmp_strp.o\
	cmp_strpp.o\
	cmp_strpp_nul.o\
	cmp_ucharp.o\
	cmp_ucharpp.o\
	cmp_ucharpp_nul.o\
	cmp_uint16p.o\
	cmp_uint16pp.o\
	cmp_uint16pp_nul.o\
	cmp_uint32p.o\
	cmp_uint32pp.o\
	cmp_uint32pp_nul.o\
	cmp_uint64p.o\
	cmp_uint64pp.o\
	cmp_uint64pp_nul.o\
	cmp_uint8p.o\
	cmp_uint8pp.o\
	cmp_uint8pp_nul.o\
	cmp_uint_least16p.o\
	cmp_uint_least16pp.o\
	cmp_uint_least16pp_nul.o\
	cmp_uint_least32p.o\
	cmp_uint_least32pp.o\
	cmp_uint_least32pp_nul.o\
	cmp_uint_least64p.o\
	cmp_uint_least64pp.o\
	cmp_uint_least64pp_nul.o\
	cmp_uint_least8p.o\
	cmp_uint_least8pp.o\
	cmp_uint_least8pp_nul.o\
	cmp_uintmaxp.o\
	cmp_uintmaxpp.o\
	cmp_uintmaxpp_nul.o\
	cmp_uintp.o\
	cmp_uintpp.o\
	cmp_uintpp_nul.o\
	cmp_uintptrp.o\
	cmp_uintptrpp.o\
	cmp_uintptrpp_nul.o\
	cmp_ullongp.o\
	cmp_ullongpp.o\
	cmp_ullongpp_nul.o\
	cmp_ulongp.o\
	cmp_ulongpp.o\
	cmp_ulongpp_nul.o\
	cmp_ushortp.o\
	cmp_ushortpp.o\
	cmp_ushortpp_nul.o\
	cmptimespec.o\
	cmptimeval.o\
	diff.o\
	difftimespec.o\
	difftimeval.o\
	doubletotimespec.o\
	doubletotimeval.o\
	eabspath.o\
	ealigned_alloc.o\
	ealigned_allocn.o\
	ealigned_allocz.o\
	ealigned_alloczn.o\
	ealigned_memdup.o\
	ealigned_realloc.o\
	ealigned_reallocarray.o\
	ealigned_reallocn.o\
	ealigned_strdup.o\
	ealigned_strndup.o\
	ealigned_wcsdup.o\
	ealigned_wcsndup.o\
	ealigned_wmemdup.o\
	ecalloc.o\
	ecallocn.o\
	efreadlink.o\
	egetcwd.o\
	egetexecpath.o\
	egmtime.o\
	elocaltime.o\
	emalloc.o\
	emallocn.o\
	emallocz.o\
	emalloczn.o\
	ememalign.o\
	ememalignn.o\
	ememalignz.o\
	ememalignzn.o\
	ememalloc.o\
	ememdup.o\
	enabspath.o\
	enaligned_alloc.o\
	enaligned_allocn.o\
	enaligned_allocz.o\
	enaligned_alloczn.o\
	enaligned_memdup.o\
	enaligned_realloc.o\
	enaligned_reallocarray.o\
	enaligned_reallocn.o\
	enaligned_strdup.o\
	enaligned_strndup.o\
	enaligned_wcsdup.o\
	enaligned_wcsndup.o\
	enaligned_wmemdup.o\
	encalloc.o\
	encallocn.o\
	enfreadlink.o\
	engetcwd.o\
	engetexecpath.o\
	engmtime.o\
	enlocaltime.o\
	enmalloc.o\
	enmallocn.o\
	enmallocz.o\
	enmalloczn.o\
	enmemalign.o\
	enmemalignn.o\
	enmemalignz.o\
	enmemalignzn.o\
	enmemalloc.o\
	enmemdup.o\
	enposix_memalign.o\
	enposix_memalignn.o\
	enposix_memalignz.o\
	enposix_memalignzn.o\
	enprintf.o\
	enputenvf.o\
	enpvalloc.o\
	enpvallocn.o\
	enpvallocz.o\
	enpvalloczn.o\
	enreadlink.o\
	enreadlinkat.o\
	enreadmagiclink.o\
	enrealloc.o\
	enreallocarray.o\
	enreallocn.o\
	enstrdup.o\
	enstrndup.o\
	envaligned_allocn.o\
	envaligned_alloczn.o\
	envaligned_reallocn.o\
	envalloc.o\
	envallocn.o\
	envallocz.o\
	envalloczn.o\
	envcallocn.o\
	envmallocn.o\
	envmalloczn.o\
	envmemalignn.o\
	envmemalignzn.o\
	envmemalloc.o\
	envposix_memalignn.o\
	envposix_memalignzn.o\
	envputenvf.o\
	envpvallocn.o\
	envpvalloczn.o\
	envreallocn.o\
	envvallocn.o\
	envvalloczn.o\
	enwcsdup.o\
	enwcsndup.o\
	enwmemdup.o\
	eposix_memalign.o\
	eposix_memalignn.o\
	eposix_memalignz.o\
	eposix_memalignzn.o\
	eprintf.o\
	eputenvf.o\
	epvalloc.o\
	epvallocn.o\
	epvallocz.o\
	epvalloczn.o\
	ereadlink.o\
	ereadlinkat.o\
	ereadmagiclink.o\
	erealloc.o\
	ereallocarray.o\
	ereallocn.o\
	estrdup.o\
	estrndup.o\
	evaligned_allocn.o\
	evaligned_alloczn.o\
	evaligned_reallocn.o\
	evalloc.o\
	evallocn.o\
	evallocz.o\
	evalloczn.o\
	evcallocn.o\
	evmallocn.o\
	evmalloczn.o\
	evmemalignn.o\
	evmemalignzn.o\
	evmemalloc.o\
	evposix_memalignn.o\
	evposix_memalignzn.o\
	evputenvf.o\
	evpvallocn.o\
	evpvalloczn.o\
	evreallocn.o\
	evvallocn.o\
	evvalloczn.o\
	ewcsdup.o\
	ewcsndup.o\
	ewmemdup.o\
	execlat.o\
	execleat.o\
	execlpe.o\
	execvat.o\
	execveat.o\
	execvpe.o\
	fexecl.o\
	fexecle.o\
	fexecv.o\
	freadlink.o\
	generate_seed.o\
	get_stack_direction.o\
	get_stack_limit.o\
	get_stack_space.o\
	getcwd.o\
	getenv_e.o\
	getenv_ne.o\
	getexecpath.o\
	gmtime.o\
	habs.o\
	hdiff.o\
	hhabs.o\
	hhdiff.o\
	i16abs.o\
	i16diff.o\
	i32abs.o\
	i32diff.o\
	i64abs.o\
	i64diff.o\
	i8abs.o\
	i8diff.o\
	imaxabs.o\
	imaxdiff.o\
	inchrcaseset.o\
	inchrset.o\
	iptrabs.o\
	iptrdiff.o\
	labs.o\
	ldiff.o\
	llabs.o\
	lldiff.o\
	localtime.o\
	mallocn.o\
	mallocz.o\
	malloczn.o\
	memalign.o\
	memalignn.o\
	memalignz.o\
	memalignzn.o\
	memalloc.o\
	memcasechr.o\
	memcasechr_inv.o\
	memcasecmp.o\
	memcaseends.o\
	memcaseeq.o\
	memcaseeqlen.o\
	memcasemem.o\
	memcasescan.o\
	memcasescan_inv.o\
	memcasestarts.o\
	memchr_inv.o\
	memcmove.o\
	memdup.o\
	memelem.o\
	memelem_inv.o\
	memelemcpy.o\
	memelemmove.o\
	memelemscan.o\
	memelemscan_inv.o\
	memends.o\
	memeq.o\
	memeqlen.o\
	memisutf8.o\
	memmem.o\
	mempcpy.o\
	mempmove.o\
	mempset.o\
	mempsetelem.o\
	memptolower.o\
	memptoupper.o\
	memrcasechr.o\
	memrcasechr_inv.o\
	memrcaseeqlen.o\
	memrcasemem.o\
	memrchr.o\
	memrchr_inv.o\
	memrelem.o\
	memrelem_inv.o\
	memreplace.o\
	memreplaceelem.o\
	memreqlen.o\
	memrmem.o\
	memscan.o\
	memscan_inv.o\
	memsetelem.o\
	memstarts.o\
	memtolower.o\
	memtoupper.o\
	minimise_number_string.o\
	multimespec.o\
	multimeval.o\
	needstack.o\
	posix_memalignn.o\
	posix_memalignz.o\
	posix_memalignzn.o\
	putenvf.o\
	pvalloc.o\
	pvallocn.o\
	pvallocz.o\
	pvalloczn.o\
	qsort_double.o\
	qsort_doublep.o\
	qsort_doublep_nul.o\
	qsort_float.o\
	qsort_floatp.o\
	qsort_floatp_nul.o\
	qsort_int.o\
	qsort_int16.o\
	qsort_int16p.o\
	qsort_int16p_nul.o\
	qsort_int32.o\
	qsort_int32p.o\
	qsort_int32p_nul.o\
	qsort_int64.o\
	qsort_int64p.o\
	qsort_int64p_nul.o\
	qsort_int8.o\
	qsort_int8p.o\
	qsort_int8p_nul.o\
	qsort_int_least16.o\
	qsort_int_least16p.o\
	qsort_int_least16p_nul.o\
	qsort_int_least32.o\
	qsort_int_least32p.o\
	qsort_int_least32p_nul.o\
	qsort_int_least64.o\
	qsort_int_least64p.o\
	qsort_int_least64p_nul.o\
	qsort_int_least8.o\
	qsort_int_least8p.o\
	qsort_int_least8p_nul.o\
	qsort_intmax.o\
	qsort_intmaxp.o\
	qsort_intmaxp_nul.o\
	qsort_intp.o\
	qsort_intp_nul.o\
	qsort_intptr.o\
	qsort_intptrp.o\
	qsort_intptrp_nul.o\
	qsort_llong.o\
	qsort_llongp.o\
	qsort_llongp_nul.o\
	qsort_long.o\
	qsort_longp.o\
	qsort_longp_nul.o\
	qsort_nul_doublep.o\
	qsort_nul_floatp.o\
	qsort_nul_int16p.o\
	qsort_nul_int32p.o\
	qsort_nul_int64p.o\
	qsort_nul_int8p.o\
	qsort_nul_int_least16p.o\
	qsort_nul_int_least32p.o\
	qsort_nul_int_least64p.o\
	qsort_nul_int_least8p.o\
	qsort_nul_intmaxp.o\
	qsort_nul_intp.o\
	qsort_nul_intptrp.o\
	qsort_nul_llongp.o\
	qsort_nul_longp.o\
	qsort_nul_ptrdiffp.o\
	qsort_nul_rev_doublep.o\
	qsort_nul_rev_floatp.o\
	qsort_nul_rev_int16p.o\
	qsort_nul_rev_int32p.o\
	qsort_nul_rev_int64p.o\
	qsort_nul_rev_int8p.o\
	qsort_nul_rev_int_least16p.o\
	qsort_nul_rev_int_least32p.o\
	qsort_nul_rev_int_least64p.o\
	qsort_nul_rev_int_least8p.o\
	qsort_nul_rev_intmaxp.o\
	qsort_nul_rev_intp.o\
	qsort_nul_rev_intptrp.o\
	qsort_nul_rev_llongp.o\
	qsort_nul_rev_longp.o\
	qsort_nul_rev_ptrdiffp.o\
	qsort_nul_rev_scharp.o\
	qsort_nul_rev_shortp.o\
	qsort_nul_rev_sizep.o\
	qsort_nul_rev_ssizep.o\
	qsort_nul_rev_strp.o\
	qsort_nul_rev_ucharp.o\
	qsort_nul_rev_uint16p.o\
	qsort_nul_rev_uint32p.o\
	qsort_nul_rev_uint64p.o\
	qsort_nul_rev_uint8p.o\
	qsort_nul_rev_uint_least16p.o\
	qsort_nul_rev_uint_least32p.o\
	qsort_nul_rev_uint_least64p.o\
	qsort_nul_rev_uint_least8p.o\
	qsort_nul_rev_uintmaxp.o\
	qsort_nul_rev_uintp.o\
	qsort_nul_rev_uintptrp.o\
	qsort_nul_rev_ullongp.o\
	qsort_nul_rev_ulongp.o\
	qsort_nul_rev_ushortp.o\
	qsort_nul_scharp.o\
	qsort_nul_shortp.o\
	qsort_nul_sizep.o\
	qsort_nul_ssizep.o\
	qsort_nul_strp.o\
	qsort_nul_ucharp.o\
	qsort_nul_uint16p.o\
	qsort_nul_uint32p.o\
	qsort_nul_uint64p.o\
	qsort_nul_uint8p.o\
	qsort_nul_uint_least16p.o\
	qsort_nul_uint_least32p.o\
	qsort_nul_uint_least64p.o\
	qsort_nul_uint_least8p.o\
	qsort_nul_uintmaxp.o\
	qsort_nul_uintp.o\
	qsort_nul_uintptrp.o\
	qsort_nul_ullongp.o\
	qsort_nul_ulongp.o\
	qsort_nul_ushortp.o\
	qsort_ptrdiff.o\
	qsort_ptrdiffp.o\
	qsort_ptrdiffp_nul.o\
	qsort_rev_double.o\
	qsort_rev_doublep.o\
	qsort_rev_doublep_nul.o\
	qsort_rev_float.o\
	qsort_rev_floatp.o\
	qsort_rev_floatp_nul.o\
	qsort_rev_int.o\
	qsort_rev_int16.o\
	qsort_rev_int16p.o\
	qsort_rev_int16p_nul.o\
	qsort_rev_int32.o\
	qsort_rev_int32p.o\
	qsort_rev_int32p_nul.o\
	qsort_rev_int64.o\
	qsort_rev_int64p.o\
	qsort_rev_int64p_nul.o\
	qsort_rev_int8.o\
	qsort_rev_int8p.o\
	qsort_rev_int8p_nul.o\
	qsort_rev_int_least16.o\
	qsort_rev_int_least16p.o\
	qsort_rev_int_least16p_nul.o\
	qsort_rev_int_least32.o\
	qsort_rev_int_least32p.o\
	qsort_rev_int_least32p_nul.o\
	qsort_rev_int_least64.o\
	qsort_rev_int_least64p.o\
	qsort_rev_int_least64p_nul.o\
	qsort_rev_int_least8.o\
	qsort_rev_int_least8p.o\
	qsort_rev_int_least8p_nul.o\
	qsort_rev_intmax.o\
	qsort_rev_intmaxp.o\
	qsort_rev_intmaxp_nul.o\
	qsort_rev_intp.o\
	qsort_rev_intp_nul.o\
	qsort_rev_intptr.o\
	qsort_rev_intptrp.o\
	qsort_rev_intptrp_nul.o\
	qsort_rev_llong.o\
	qsort_rev_llongp.o\
	qsort_rev_llongp_nul.o\
	qsort_rev_long.o\
	qsort_rev_longp.o\
	qsort_rev_longp_nul.o\
	qsort_rev_ptrdiff.o\
	qsort_rev_ptrdiffp.o\
	qsort_rev_ptrdiffp_nul.o\
	qsort_rev_schar.o\
	qsort_rev_scharp.o\
	qsort_rev_scharp_nul.o\
	qsort_rev_short.o\
	qsort_rev_shortp.o\
	qsort_rev_shortp_nul.o\
	qsort_rev_size.o\
	qsort_rev_sizep.o\
	qsort_rev_sizep_nul.o\
	qsort_rev_ssize.o\
	qsort_rev_ssizep.o\
	qsort_rev_ssizep_nul.o\
	qsort_rev_str.o\
	qsort_rev_strp.o\
	qsort_rev_strp_nul.o\
	qsort_rev_uchar.o\
	qsort_rev_ucharp.o\
	qsort_rev_ucharp_nul.o\
	qsort_rev_uint.o\
	qsort_rev_uint16.o\
	qsort_rev_uint16p.o\
	qsort_rev_uint16p_nul.o\
	qsort_rev_uint32.o\
	qsort_rev_uint32p.o\
	qsort_rev_uint32p_nul.o\
	qsort_rev_uint64.o\
	qsort_rev_uint64p.o\
	qsort_rev_uint64p_nul.o\
	qsort_rev_uint8.o\
	qsort_rev_uint8p.o\
	qsort_rev_uint8p_nul.o\
	qsort_rev_uint_least16.o\
	qsort_rev_uint_least16p.o\
	qsort_rev_uint_least16p_nul.o\
	qsort_rev_uint_least32.o\
	qsort_rev_uint_least32p.o\
	qsort_rev_uint_least32p_nul.o\
	qsort_rev_uint_least64.o\
	qsort_rev_uint_least64p.o\
	qsort_rev_uint_least64p_nul.o\
	qsort_rev_uint_least8.o\
	qsort_rev_uint_least8p.o\
	qsort_rev_uint_least8p_nul.o\
	qsort_rev_uintmax.o\
	qsort_rev_uintmaxp.o\
	qsort_rev_uintmaxp_nul.o\
	qsort_rev_uintp.o\
	qsort_rev_uintp_nul.o\
	qsort_rev_uintptr.o\
	qsort_rev_uintptrp.o\
	qsort_rev_uintptrp_nul.o\
	qsort_rev_ullong.o\
	qsort_rev_ullongp.o\
	qsort_rev_ullongp_nul.o\
	qsort_rev_ulong.o\
	qsort_rev_ulongp.o\
	qsort_rev_ulongp_nul.o\
	qsort_rev_ushort.o\
	qsort_rev_ushortp.o\
	qsort_rev_ushortp_nul.o\
	qsort_schar.o\
	qsort_scharp.o\
	qsort_scharp_nul.o\
	qsort_short.o\
	qsort_shortp.o\
	qsort_shortp_nul.o\
	qsort_size.o\
	qsort_sizep.o\
	qsort_sizep_nul.o\
	qsort_ssize.o\
	qsort_ssizep.o\
	qsort_ssizep_nul.o\
	qsort_str.o\
	qsort_strp.o\
	qsort_strp_nul.o\
	qsort_uchar.o\
	qsort_ucharp.o\
	qsort_ucharp_nul.o\
	qsort_uint.o\
	qsort_uint16.o\
	qsort_uint16p.o\
	qsort_uint16p_nul.o\
	qsort_uint32.o\
	qsort_uint32p.o\
	qsort_uint32p_nul.o\
	qsort_uint64.o\
	qsort_uint64p.o\
	qsort_uint64p_nul.o\
	qsort_uint8.o\
	qsort_uint8p.o\
	qsort_uint8p_nul.o\
	qsort_uint_least16.o\
	qsort_uint_least16p.o\
	qsort_uint_least16p_nul.o\
	qsort_uint_least32.o\
	qsort_uint_least32p.o\
	qsort_uint_least32p_nul.o\
	qsort_uint_least64.o\
	qsort_uint_least64p.o\
	qsort_uint_least64p_nul.o\
	qsort_uint_least8.o\
	qsort_uint_least8p.o\
	qsort_uint_least8p_nul.o\
	qsort_uintmax.o\
	qsort_uintmaxp.o\
	qsort_uintmaxp_nul.o\
	qsort_uintp.o\
	qsort_uintp_nul.o\
	qsort_uintptr.o\
	qsort_uintptrp.o\
	qsort_uintptrp_nul.o\
	qsort_ullong.o\
	qsort_ullongp.o\
	qsort_ullongp_nul.o\
	qsort_ulong.o\
	qsort_ulongp.o\
	qsort_ulongp_nul.o\
	qsort_ushort.o\
	qsort_ushortp.o\
	qsort_ushortp_nul.o\
	random_bits.o\
	random_bytes.o\
	random_float.o\
	random_signed.o\
	random_unsigned.o\
	rawmemcasechr.o\
	rawmemcasechr_inv.o\
	rawmemccpy.o\
	rawmemchr.o\
	rawmemchr_inv.o\
	rawmemcmove.o\
	rawmemelem.o\
	rawmemelem_inv.o\
	rawmemelemcpy.o\
	rawmemelemmove.o\
	rawmemrcasechr.o\
	rawmemrcasechr_inv.o\
	rawmemrchr.o\
	rawmemrchr_inv.o\
	rawmemrelem.o\
	rawmemrelem_inv.o\
	readlink.o\
	readlinkat.o\
	readmagiclink.o\
	reallocarray.o\
	reallocarrayf.o\
	reallocf.o\
	reallocfn.o\
	reallocn.o\
	srand.o\
	stpmove.o\
	stpnmove.o\
	stpnset.o\
	stpntolower.o\
	stpntoupper.o\
	stpset.o\
	stptolower.o\
	stptoupper.o\
	strcasechr.o\
	strcasechr_inv.o\
	strcasechrnul.o\
	strcasechrnul_inv.o\
	strcasecmpnul.o\
	strcaseends.o\
	strcaseeq.o\
	strcaseeqlen.o\
	strcaseeqnul.o\
	strcasestarts.o\
	strcasestr.o\
	strccpy.o\
	strchr_inv.o\
	strchrnul.o\
	strchrnul_inv.o\
	strcmove.o\
	strcmpnul.o\
	strend.o\
	strends.o\
	streq.o\
	streqlen.o\
	streqnul.o\
	strisutf8.o\
	strmove.o\
	strncasechr.o\
	strncasechr_inv.o\
	strncasechrnul.o\
	strncasechrnul_inv.o\
	strncasecmpnul.o\
	strncaseends.o\
	strncaseeq.o\
	strncaseeqlen.o\
	strncaseeqnul.o\
	strncasestarts.o\
	strncasestr.o\
	strnccpy.o\
	strnchr.o\
	strnchr_inv.o\
	strnchrnul.o\
	strnchrnul_inv.o\
	strncmove.o\
	strncmpnul.o\
	strnend.o\
	strnends.o\
	strneq.o\
	strneqlen.o\
	strneqnul.o\
	strnisutf8.o\
	strnmove.o\
	strnreplace.o\
	strnset.o\
	strnstarts.o\
	strnstr.o\
	strntolower.o\
	strntoupper.o\
	strrcasechr.o\
	strrcasechr_inv.o\
	strrcaseeqlen.o\
	strrcasestr.o\
	strrchr_inv.o\
	strreplace.o\
	strreqlen.o\
	strrncasechr.o\
	strrncasechr_inv.o\
	strrncaseeqlen.o\
	strrncasestr.o\
	strrnchr.o\
	strrnchr_inv.o\
	strrneqlen.o\
	strrnstr.o\
	strrstr.o\
	strset.o\
	strstarts.o\
	strtoh.o\
	strtohh.o\
	strtoi.o\
	strtoi16.o\
	strtoi32.o\
	strtoi64.o\
	strtoi8.o\
	strtolower.o\
	strtotimespec.o\
	strtotimeval.o\
	strtou.o\
	strtou16.o\
	strtou32.o\
	strtou64.o\
	strtou8.o\
	strtouh.o\
	strtouhh.o\
	strtoupper.o\
	strtouz.o\
	strtoz.o\
	sumtimespec.o\
	sumtimeval.o\
	timespec2timeval.o\
	timespectodouble.o\
	timespectostr.o\
	timeval2timespec.o\
	timevaltodouble.o\
	timevaltostr.o\
	toi.o\
	toi16.o\
	toi32.o\
	toi64.o\
	toi8.o\
	toih.o\
	toihh.o\
	toil.o\
	toill.o\
	toimax.o\
	toiptr.o\
	toiz.o\
	u16abs.o\
	u32abs.o\
	u64abs.o\
	u8abs.o\
	uabs.o\
	uhabs.o\
	uhhabs.o\
	ulabs.o\
	ullabs.o\
	umaxabs.o\
	unlist.o\
	uptrabs.o\
	uzabs.o\
	valigned_allocn.o\
	valigned_reallocfn.o\
	valloc.o\
	vallocn.o\
	vallocz.o\
	valloczn.o\
	vasprintf.o\
	vcallocn.o\
	venprintf.o\
	veprintf.o\
	vexecl.o\
	vexeclat.o\
	vexecle.o\
	vexecleat.o\
	vexeclp.o\
	vexeclpe.o\
	vfexecl.o\
	vfexecle.o\
	vmallocn.o\
	vmemalignn.o\
	vmemalignzn.o\
	vmemalloc.o\
	vposix_memalignn.o\
	vputenvf.o\
	vpvallocn.o\
	vpvalloczn.o\
	vreallocfn.o\
	vvallocn.o\
	vvalloczn.o\
	vweprintf.o\
	vxexecl.o\
	vxexecle.o\
	wcsndup.o\
	weprintf.o\
	which.o\
	wmemdup.o\
	xexecl.o\
	xexecv.o\
	zabs.o\
	zdiff.o\
	libsimple.o

MAN0 =\
	man0/libsimple-arg.h.0\
	man0/libsimple.h.0

MAN3 =\
	man3/libsimple_*.3\
	man3/LIBSIMPLE_*.3\
	man3/*.3libsimple

TESTS = $(OBJ:.o=.test) libsimple-arg.test

LOBJ = $(OBJ:.o=.lo)

all: libsimple.a libsimple.$(LIBEXT) $(TESTS)
tests: $(TESTS)
$(OBJ): $(HDR)
$(TESTS): test.o libsimple.a
$(TESTS:.test=.to): $(HDR) test.h

test.o: test.c $(HDR) test.h
	$(CC) -c -o $@ test.c $(CFLAGS) $(CPPFLAGS) -DTEST -O0 -ffreestanding

libsimple.a: $(OBJ)
	@rm -f -- $@
	$(AR) rc $@ $(OBJ)
	$(AR) -s $@

libsimple.$(LIBEXT): $(LOBJ)
	$(CC) $(LIBFLAGS) -o $@ $(LOBJ) $(LDFLAGS)

.to.test:
	$(CC) -o $@ $< test.o libsimple.a $(LDFLAGS)

.c.to:
	$(CC) -c -o $@ $< $(CFLAGS) $(CPPFLAGS) -DTEST -O0

.c.o:
	$(CC) -c -o $@ $< $(CFLAGS) $(CPPFLAGS)

.c.lo:
	$(CC) -fPIC -c -o $@ $< $(CFLAGS) $(CPPFLAGS)

check: $(TESTS)
	@set -e; for t in $(TESTS); do printf '%s\n' "./$$t"; $(CHECK_PREFIX) "./$$t"; done

install: libsimple.a libsimple.$(LIBEXT)
	mkdir -p -- "$(DESTDIR)$(PREFIX)/lib"
	mkdir -p -- "$(DESTDIR)$(PREFIX)/include/libsimple"
	mkdir -p -- "$(DESTDIR)$(MANPREFIX)/man0"
	mkdir -p -- "$(DESTDIR)$(MANPREFIX)/man3"
	cp -- libsimple.a "$(DESTDIR)$(PREFIX)/lib"
	cp -- libsimple.$(LIBEXT) "$(DESTDIR)$(PREFIX)/lib/libsimple.$(LIBMINOREXT)"
	$(FIX_INSTALL_NAME) "$(DESTDIR)$(PREFIX)/lib/libsimple.$(LIBMINOREXT)"
	ln -sf -- libsimple.$(LIBMINOREXT) "$(DESTDIR)$(PREFIX)/lib/libsimple.$(LIBMAJOREXT)"
	ln -sf -- libsimple.$(LIBMAJOREXT) "$(DESTDIR)$(PREFIX)/lib/libsimple.$(LIBEXT)"
	cp -- libsimple.h "$(DESTDIR)$(PREFIX)/include"
	cp -- libsimple-arg.h "$(DESTDIR)$(PREFIX)/include"
	cp -- $(SUBHDR) "$(DESTDIR)$(PREFIX)/include/libsimple"
	cp -P -- $(MAN0) "$(DESTDIR)$(MANPREFIX)/man0"
	cp -P -- $(MAN3) "$(DESTDIR)$(MANPREFIX)/man3"

uninstall:
	-rm -f -- "$(DESTDIR)$(PREFIX)/lib/libsimple.a"
	-rm -f -- "$(DESTDIR)$(PREFIX)/include/libsimple.h"
	-rm -f -- "$(DESTDIR)$(PREFIX)/include/libsimple-arg.h"
	-rm -rf -- "$(DESTDIR)$(PREFIX)/include/libsimple"
	-cd -- "$(DESTDIR)$(MANPREFIX)/man0" && rm -f -- $(MAN0)
	-cd -- "$(DESTDIR)$(MANPREFIX)/man3" && rm -f -- $(MAN3)

clean:
	-rm -rf -- *.o *.su *.a *.so *.so.* *.gch *.gcda *.gcno *.gcov *.lo *.test *.to

.SUFFIXES:
.SUFFIXES: .test .to .lo .o .c

.PHONY: all check install uninstall clean